2012-08-09 90 views
1

中的索引,除了执行迭代关联数组的实际工作外,将值推入新数组并将其设置为等于剩余字段数组,是否有构建的数组函数到PHP会做这样的事情?使用多维数组值作为PHP

如果是这样,它是什么?

我会改变如下:

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

弄成这个样子:

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

下面给出能否请您粘贴代码在这里,所以我可以帮你的代码? – 2012-08-09 07:32:56

+0

不是我所知道的,不,但是如果你的数组元素具有相同的一致结构(即一个有'created'键的数组),那么编写一个简单的函数就足够简单了。 – 2012-08-09 07:33:12

+0

@JackManey啊,多数民众赞成我怀疑..它让我有点难过:) – Kristian 2012-08-09 07:35:03

回答

1

翻转该值,并删除旧的同一阵列...这应该没问题,只要创建的值不会覆盖现有的一个条目,我很怀疑这是因为created似乎是时间戳。

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

或者您可以保留这两个副本,并使用引用保存在内存中。

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

如果第一个数组是$一个

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

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

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

    } 
    print_r($new); 
?> 
+0

您可以通过在同一阵列中完成所有操作来保存一些RAM,并取消设置旧值,或者如果您需要保留这两个值,请参考参数'=&' – Geoffrey 2012-08-09 07:38:34

-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>"; 

感谢

+0

为什么重新创建阵列? – Geoffrey 2012-08-09 07:56:40