Alt diziden bir değer dizisi KEY değiştirme

4 Cevap php

Bu benim veritabanından sonuç kümesidir

print_r($plan);
Array
(
    [0] => Array
        (
            [id] => 2
            [subscr_unit] => D
            [subscr_period] => 
            [subscr_fee] => 
        )

    [1] => Array
        (
            [id] => 3
            [subscr_unit] => M,Y
            [subscr_period] => 1,1
            [subscr_fee] => 90,1000
        )

    [2] => Array
        (
            [id] => 32
            [subscr_unit] => M,Y
            [subscr_period] => 1,1
            [subscr_fee] => 150,1500
        )

)

Nasıl $plan[value_of_id] için $plan[0] değiştirebilirsiniz

Teşekkür ederiz.

4 Cevap

Bu yerinde bunu, ama olmaz:

$new_plan = array();
foreach ($plan as $item)
{
  $new_plan[$item['id']] => $item;
}

Ayrıca, bir dizi indirgeyici, genellikle de, kullanılır {[(0)] ki} kullanabilir. Yani giriş dizideki ancak gerekli tuşları ile aynı öğeleri dönen basit ile istediğiniz gibi bir dizi biçimi elde etmek için kullanılabilir dedi.

// Note: Uses anonymous function syntax only available as of PHP 5.3.0
//       Could use create_function() or callback to a named function
$plan = array_reduce($plan, function($reduced, $current) {
    $reduced[$current['id']] = $current;
    return $reduced;
});

Söz belirtildiği gibi yukarıdaki paragraf açıkça yapmak vermedi, ancak unutmayın, bu yaklaşım, bireysel gereksinimleri için overkill. Bu sadece anahtarlarını değiştirerek daha dizi ile biraz daha yapmak isteyen okurlara ancak yararlı olabilir.

$plans = array();
foreach($plan as $item)
{
    $plans[$item['id']] = $item;
}

$plans ilişkisel dizi içerir.

Bu sadece basit bir çözümdür.

Eğer $ planı yardımcı olacaktır birleştirmek için kullanılan kod görünce, ama ben bunu kabul edeceğim bu gibi bir şey oldu

while ($line = $RES->fetch_assoc()) {
    $plan[] = $line;
}

Bu gibi, veritabanından veri çekerek ederken basitçe açık bir değer atayabilirsiniz:

while ($line = $RES->fetch_assoc()) {
    $plan[$line['id']] = $line;
}

Bu $ RES veritabanı sorgu sonucu küme üstleniyor.