填充多维数组的最简单方法是什么? PHP

时间:2013-03-31 05:23:57

标签: php arrays fill

我有以下内容:

$toys[1]['brand']= "";
$toys[2]['brand']= "";
$toys[3]['brand']= "";
$toys[4]['brand']= "";
// and so on..

我想用“等等”来填补所有品牌的关键......

如果有:

那就太好了
$toys[*]['branding'] = 'blah';

*表示ALL。但不幸的是,这是不可用的。

我能想到的下一个最简单的方法是foreach()循环

但只是想知道是否有一个函数我可能没有意识到这有点像array_fill但是对于多维度?或者至少是否有更好的技术?

3 个答案:

答案 0 :(得分:1)

保留特定功能。它们比foreach循环花费更多,它们也可能包含foreach循环。

请选择以下内容:

foreach ($toys as &$a) $a['brand'] = '';

这不容易和可读吗?

答案 1 :(得分:0)

看一下php的array_walk()。您可以对数组中的每个元素应用常规函数。

试试这个:

function initialize_brand(&$value, $key) {
  $value['brand'] = '';
}

array_walk($toys, 'initialize_brand');

答案 2 :(得分:0)

<?php
$toys[1]['brand']= "A";
$toys[2]['brand']= "V";
$toys[3]['brand']= "asas";
$toys[4]['brand']= "dfdf";
$toys[4]['otherkey']= "dfdf";

function change_branding(&$item, $key)
{
    if($key == 'brand') $item = '';
}
echo '<pre>';

array_walk_recursive($toys, 'change_branding');
print_r($toys);
?> 

Array
(
    [1] => Array
        (
            [brand] => 
        )

    [2] => Array
        (
            [brand] => 
        )

    [3] => Array
        (
            [brand] => 
        )

    [4] => Array
        (
            [brand] => 
            [otherkey] => dfdf
        )

)