1。我的阵列
我有返回数组数组的函数:
function show_array() {
$myArray = array(
array(
'foo' => 'bar',
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'bar2',
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'bar3',
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'bar4',
'bar' => 'foo',
'aaa' => 'bbb'),
//I want to add additional elements here using foreach
);
return $myArray;
}
2.要动态添加的元素
正如上面的评论中所说,我想在foreach循环的基础上向$myArray添加一些额外的元素,这里有一个简单的函数,它什么都不返回,但显示了我想插入的内容:
$addToMyArray = array('one','two','three');
foreach($addToMyArray as $newElement) {
array(
'foo' => $newElement,
'bar' => 'foo',
'aaa' => 'bbb',
);
}
3.期望的结果
所以最后show_array()应该返回:
array(
array(
'foo' => 'bar',
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'bar2',
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'bar3',
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'bar4',
'bar' => 'foo',
'aaa' => 'bbb'),
//added stuff
array(
'foo' => 'one,
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'two,
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'three,
'bar' => 'foo',
'aaa' => 'bbb'),
);
我试图以$myArray[]的形式返回新选项,对它们进行array_push,然后进行array_merge,但似乎什么都不起作用,我也无法在$myArray数组中放置任何循环(这是显而易见的)。但是show_array()从不返回生成的元素。
应该怎么做?
您只需要在循环中追加到$myArray
:
$addToMyArray = array('one','two','three');
foreach($addToMyArray as $newElement) {
$myArray[] = array(
'foo' => $newElement,
'bar' => 'foo',
'aaa' => 'bbb',
);
}
你的意思是类似的吗?
function show_array() {
$myArray = array(
array(
'foo' => 'bar',
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'bar2',
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'bar3',
'bar' => 'foo',
'aaa' => 'bbb'),
array(
'foo' => 'bar4',
'bar' => 'foo',
'aaa' => 'bbb'),
//I want to add additional elements here using foreach
);
$addToMyArray = array('one','two','three');
foreach($addToMyArray as $newElement) {
$myArray[] = array(
'foo' => $newElement,
'bar' => 'foo',
'aaa' => 'bbb',
);
}
return $myArray;
}
或者类似的东西:
function compileArray($values) {
myArray = array();
foreach($values as $newElement) {
$myArray[] = array(
'foo' => $newElement,
'bar' => 'foo',
'aaa' => 'bbb',
);
}
return $myArray;
}
$result = array_merge(show_array(),compileArray(array('one','two','three')));
或者,增加了更多的灵活性:
function createElementArray($value) {
return array(
'foo'=>$value,
'bar'=>'foo',
'aaa'=>'bbb'
);
}
$result = array_merge(
show_array(),
array_map(createElementArray, array('one','two','three'))
);
为了将单个数组的代码封装为易于互换的函数。