1

連想配列を反復処理し、値を新しい配列にプッシュし、残りのフィールドの配列と等しい値を設定するという実際の作業を別として、このようなことを行う PHP に組み込まれた配列関数はありますか?

もしそうなら、それは何ですか?

私は以下を変更します:

array(
    [0] => array(
        [created] => 12512512,
        [name] => something
    )
)

このようなものに:

array(
    [12512512] => array(
        [created] => 12512512,
        [name] => something
    )
)
4

4 に答える 4

1

最初の配列が $a の場合

foreach ($a as $v){
    $newarray[$v['created']] = $v;
}
于 2012-08-09T07:36:15.887 に答える
1

私はあなたが本当に何をしたいのかわかりません....多分これはあなたが助けることができます

<?php
   $new = array();
   foreach($oldArr as $arr) {
        $new[$arr['created']] = $arr;

   }
   print_r($new);
?>
于 2012-08-09T07:36:17.290 に答える
1

値を反転し、同じ配列内の古い値を削除します...作成された値が既存のエントリの1つを上書きしない限り、これは問題ありませんcreated

foreach($myArray as $index => $entry) {
    $myArray[$entry['created']] = $entry;
    unset($myArray[$index]);
}

または、両方のコピーを保持し、参照を使用して RAM を節約することもできます。

foreach($myArray as &$entry)
    $myArray[$entry['created']] =& $entry;
于 2012-08-09T07:42:47.043 に答える
-1

以下のコードを試してください

$arrs = array();
$arrs[0]['created'] = 1252;
$arrs[0]['name'] = 'A';

$narrs = array();
foreach($arrs AS $arr){
 $narrs[$arr['created']]['created'] = $arr['created'];
 $narrs[$arr['created']]['name'] = $arr['name'];
}

echo "<pre>";
print_r($narrs); echo "</pre>";

ありがとう

于 2012-08-09T07:49:57.813 に答える