我有以下内容:
$toys[1]['brand']= "";
$toys[2]['brand']= "";
$toys[3]['brand']= "";
$toys[4]['brand']= "";
// and so on..
我想用“等等”来填补所有品牌的关键......
如果有:
那就太好了$toys[*]['branding'] = 'blah';
*
表示ALL。但不幸的是,这是不可用的。
我能想到的下一个最简单的方法是foreach()
循环
但只是想知道是否有一个函数我可能没有意识到这有点像array_fill
但是对于多维度?或者至少是否有更好的技术?
答案 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
)
)