Çok boyutlu bir dizi PHP adlandırma Dizi anahtarları

4 Cevap php

, Aşağıda biri olarak bir dizi, nasıl "fee_id" için "id" olarak yeniden adlandırabilirsiniz?

Array
(
    [0] => Array
        (
            [fee_id] => 15
            [fee_amount] => 308.5
            [year] => 2009                
        )

    [1] => Array
        (
            [fee_id] => 14
            [fee_amount] => 308.5
            [year] => 2009

        )

)

4 Cevap

foreach ( $array as $k=>$v )
{
  $array[$k] ['id'] = $array[$k] ['fee_id'];
  unset($array[$k]['fee_id']);
}

Bu çalışması gerekir

'Id' ve unset önceki anahtar adında yeni bir anahtar için geçerli 'fee_id' değeri kopyalayın?

foreach ($array as $arr)
{
  $arr['id'] = $arr['fee_id'];
  unset($arr['fee_id']);
}

Böyle ince AFAIK yapıyor yerleşik hiçbir işlevi yoktur.

$arrayNum = count($theArray);

for( $i = 0 ; $i < $arrayNum ; $i++ )
{
    $fee_id_value = $theArray[$i]['fee_id'];
    unset($theArray[$i]['fee_id']);
    $theArray[$i]['id'] = $fee_id_value;
}

Bu çalışması gerekir.

Ben özyinelemeli işlevleri kullanarak bir kaç saat boyunca bu sorunu çözmeye çalışıyorlar, ama sonunda biz hiç özyinelemeye gerekmez fark etti. Aşağıda benim yaklaşımdır.

$search = array('key1','key2','key3');
$replace = array('newkey1','newkey2','newkey3');

$resArray = str_replace($search,$replace,json_encode($array));
$res = json_decode($resArray);

Bu yolda biz döngü ve özyineleme önleyebilirsiniz.

Bu yardımcı olur umarım.