在PHP中使用多维数组值作为索引

时间:2012-08-09 07:31:42

标签: php arrays multidimensional-array

除了执行迭代关联数组的实际工作,将值推入新数组并将其设置为等于剩余字段数组之外,是否有一个内置于PHP中的数组函数可以执行类似的操作?

如果是的话,它是什么?

我会改变以下内容:

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

这样的事情:

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

4 个答案:

答案 0 :(得分:1)

如果第一个数组是$ a

foreach ($a as $v){
    $newarray[$v['created']] = $v;
}

答案 1 :(得分:1)

我不知道你真正想做什么......也许这可以帮助你

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

   }
   print_r($new);
?>

答案 2 :(得分:1)

翻转该值并删除同一个数组中的旧值...如果创建的值不会覆盖其中一个现有条目,这应该没问题,我非常怀疑,因为created似乎是一个时间戳。

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

或者您可以保留两份副本并使用引用来保存ram。

foreach($myArray as &$entry)
    $myArray[$entry['created']] =& $entry;

答案 3 :(得分:-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>";

感谢