v2.5.2
Giriş yap

php çok boyutlu diziye çevirme

rotaile
357 defa görüntülendi ve 1 kişi tarafından değerlendirildi
(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

Cevap yaz
Cevaplar (2)
ebykdrms
699 gün önce

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];
}
kartal
704 gün önce

bu şekilde yapma bence aynı dizide anahtar adı ilçe değwri id olabilir.