我想使用foreach循环遍历数组列表并为每个数组添加一个元素。
$tom = array('aa','bb','cc');
$sally = array('xx','yy','zz');
$myArrays = array('tom','sally');
foreach($myArrays as $arrayName) {
${$arrayName}[] = 'newElement';
}
使用$ {$ arrayName} []是最好的方法吗?还有其他选择而不是使用花括号吗?它目前有效,但我只是想知道是否有更好的选择。
由于
答案 0 :(得分:9)
使用参考。
$myArrays = array(&$tom, &$sally);
foreach($myArrays as &$arr) {
$arr[] = 'newElement';
}
答案 1 :(得分:5)
如果你坚持这种结构,我会坚持你在那里做的事情。但评论可能会很好。
如果你可以重新排列东西,为什么不嵌套呢?
$tom = array('aa','bb','cc');
$sally = array('xx','yy','zz');
$myArrays = array(&$tom, &$sally); // store the actual arrays, not names
// note the & for reference, this lets you modify the original array inside the loop
foreach($myArrays as &$array) {
$array[] = 'newElement';
}
答案 2 :(得分:0)
不需要花括号。
$$arrayName[]
原始行可能是PHP中的错误?
虽然我想知道为什么你总是需要这样做......
答案 3 :(得分:0)
有些人会责骂你使用变量变量。你可以这样做:
$tom = array('aa','bb','cc');
$sally = array('xx','yy','zz');
$myArrays = array(&$tom, &$sally);
for($i=0; $i<sizeof($myArrays); ++$i) {
$myArrays[$i][] = 'newElement';
}
答案 4 :(得分:0)
没试过,但也应该有效:
$tom = array('aa','bb','cc');
$sally = array('xx','yy','zz');
$myArrays = array('tom','sally');
foreach($myArrays as $key => $value) {
$$value[] = 'newElement';
}