PHP将元素添加到多维数组的每个子数组

前端之家收集整理的这篇文章主要介绍了PHP将元素添加到多维数组的每个子数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个看起来像那样的数组
array(
     [0] => array(
               'id' => 1,'title' => 'title 1',),[1] => array(
               'id' => 10,'title' => 'title 10',[2] => array(
               'id' => 11,'title' => 'title 11',[...]
);

我想为所有子数组添加一个元素.这是我正在添加的相同元素.所以新数组看起来像:

array(
     [0] => array(
               'id' => 1,'type'  => 'bag',[...]
);

有没有办法在不迭代第一个数组的情况下完成它?
这将是一个很大的阵容.我正在寻找最快的方法.

无论使用array_walk可能希望获得什么样的速度,都会因函数开销而丢失.由于您在注释中声明数组是db查询的结果,因此您可以通过将SELECT’bag’AS’type’添加sql语句中,将bag值包含在结果集中.
$start = 0; $end = 0;

$orig = array(
    array('id' => 1,'title' => 'title 1'),array('id' => 10,'title' => 'title 10'),array('id' => 11,'title' => 'title 11')
);

// A
$start = microtime(true);
for ($a=0; $a<1000; $a++) {
    $els1 = $orig;
    array_walk($els1,function(&$val,$key){$val['type'] = 'bag';});
}
$end = microtime(true);
echo 'A: ',$end - $start,"<br />\n";

// B
$start = microtime(true);
for ($b=0; $b<1000; $b++) {
    $els2 = $orig;
    foreach ($els2 as &$el) {
        $el['type'] = 'bag';
    }
    unset($el);
}
$end = microtime(true);
echo 'B: ',"<br />\n";

/* output:

A: 0.0076138973236084
B: 0.0047528743743896

A: 0.0075309276580811
B: 0.0045361518859863

A: 0.0075531005859375
B: 0.062379837036133

A: 0.0075340270996094
B: 0.0044951438903809

A: 0.0074868202209473
B: 0.0044751167297363

A: 0.0076088905334473
B: 0.0048189163208008

*/
原文链接:https://www.f2er.com/php/138636.html

猜你在找的PHP相关文章