1

我有以下内容:

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

我想用“blah”填充所有品牌键......

如果有一个就好了:

$toys[*]['branding'] = 'blah';

*意义全部。但不幸的是,这不可用。

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

但只是想知道是否有一个我可能不知道的功能,array_fill但它有点像多维?或者至少如果有更好的技术?

4

3 回答 3

1

省略特定功能。它们的成本超过了 foreach 循环,而且它们可能还包含 foreach 循环。

只需使用类似的东西:

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

这不是简单易读吗?

于 2013-03-31T05:38:28.707 回答
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
        )

)
于 2013-03-31T05:38:16.083 回答
0

看看 php 的array_walk(). 您可以对数组中的每个元素应用通用函数。

尝试这个:

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

array_walk($toys, 'initialize_brand');
于 2013-03-31T05:32:02.157 回答