php çok boyutlu diziye çevirme
(1, 'Abana', 37),
(2, 'Acıgöl', 50),
(3, 'Acıpayam', 20),
(4, 'Adaklı', 12),
(5, 'Adalar', 34),
(6, 'Adapazarı', 54),
(7, 'Adıyaman', 2),
(8, 'Adilcevaz', 13),
(9, 'Afşin', 46),
(10, 'Afyonkarahisar', 3),
(11, 'Ağaçören', 68),
(12, 'Ağın', 23),
arkadaşlar yukarıdaki gibi bir veri var elimde
bunu çok boyutlu diziye çevirmem lazım.
şu şekilde
$arr = array(
"ilceler" => array( "abana", "acıgöl", "acıpayam"),
"sehirID" => array (37,50,20)
)
şeklinde kod ile yukarıdaki yapıyı düzenleyip nasıl bu hale getirebiliriz?
veri çok fazla olduğu için elle düzenleme yapmak mantıklı gelmedi.
başlangıçakki id kısmı gerekmiyor arkadaşlar sadece ilçe ve şehir no lazım
Elinizdeki verinin çıktısını nasıl elde ettiniz? Bu bir array mı yoksa object mi?
Sorunuzu #php ve #javascript şeklinde etiketlemişsiniz. Javascript'in bu sorudaki yeri nedir?
Ben varsayımsal olarak PHP'ye göre 2 cevap vereceğim.
Cevap 1:
Diyelim ki normalde elinizde key'leri belli olan böyle bir veri var:
$arr = [
["id"=>1, "location"=>'Abana', "locationId"=>37],
["id"=>2, "location"=>'Acıgöl', "locationId"=>50],
["id"=>3, "location"=>'Acıpayam', "locationId"=>20],
["id"=>4, "location"=>'Adaklı', "locationId"=>12],
["id"=>5, "location"=>'Adalar', "locationId"=>34],
["id"=>6, "location"=>'Adapazarı', "locationId"=>54],
["id"=>7, "location"=>'Adıyaman', "locationId"=>2],
["id"=>8, "location"=>'Adilcevaz', "locationId"=>13],
["id"=>9, "location"=>'Afşin', "locationId"=>46],
["id"=>10, "location"=>'Afyonkarahisar', "locationId"=>3],
["id"=>11, "location"=>'Ağaçören', "locationId"=>68],
["id"=>12, "location"=>'Ağın', "locationId"=>23]
];
Bahsettiğiniz şekilde bir dizi elde etmek için şu fonksiyonu kullanabilirsiniz:
$groupedArr = ["ilceler"=>[], "sehirID"=>[]];
for($i=0; $i < count($arr); $i++) {
$thisRecord = $arr[$i];
$groupedArr["ilceler"][] = $thisRecord["location"];
$gropedArr["sehirID"][] => $thisRecors["locationId"];
}
Cevap 2:
Diyelim ki normalde elinizde key'leri belli olmayan ama sıraları belli olan böyle bir veri var:
$arr = [
[1, 'Abana', 37],
[2, 'Acıgöl', 50],
[3, 'Acıpayam', 20],
[4, 'Adaklı', 12],
[5, 'Adalar', 34],
[6, 'Adapazarı', 54],
[7, 'Adıyaman', 2],
[8, 'Adilcevaz', 13],
[9, 'Afşin', 46],
[10, 'Afyonkarahisar', 3],
[11, 'Ağaçören', 68],
[12, 'Ağın', 23]
];
Bahsettiğiniz şekilde bir dizi elde etmek için şu fonksiyonu kullanabilirsiniz:
$groupedArr = ["ilceler"=>[], "sehirID"=>[]];
for($i=0; $i < count($arr); $i++) {
$thisRecord = $arr[$i];
$groupedArr["ilceler"][] = $thisRecord[1];
$groupedArr["sehirID"][] => $thisRecors[2];
}