Php 从另一个数组的元素创建数组
我有一个数组叫array3Php 从另一个数组的元素创建数组,php,arrays,multidimensional-array,foreach,Php,Arrays,Multidimensional Array,Foreach,我有一个数组叫array3 Array ( [0] => Commercial [1] => Infrastructure ) 我想迭代这个数组的每个元素,并根据这些值创建单独的数组。我已经试过了 $array4 = array(); $array5= array(); foreach ($array3 as $value) { $array4[] = array('v' => count(search($rows, 'domaindesc', $
Array
(
[0] => Commercial
[1] => Infrastructure
)
我想迭代这个数组的每个元素,并根据这些值创建单独的数组。我已经试过了
$array4 = array();
$array5= array();
foreach ($array3 as $value) {
$array4[] = array('v' => count(search($rows, 'domaindesc', $value)));
$array4[] = array('v' => $value);
$array5[] = array('c' => $array4);
}
搜索函数从另一个数组返回加工元素的数量。我从上述代码得到的输出是
Array
(
[0] => Array
(
[c] => Array
(
[0] => Array
(
[v] => 5
)
[1] => Array
(
[v] => Commercial
)
)
)
[1] => Array
(
[c] => Array
(
[0] => Array
(
[v] => 5
)
[1] => Array
(
[v] => Commercial
)
[2] => Array
(
[v] => 1
)
[3] => Array
(
[v] => Infrastructure
)
)
)
)
我想得到的是
Array
(
[0] => Array
(
[c] => Array
(
[0] => Array
(
[v] => 5
)
[1] => Array
(
[v] => Commercial
)
)
)
[1] => Array
(
[c] => Array
(
[0] => Array
(
[v] => 1
)
[1] => Array
(
[v] => Infrastructure
)
)
)
)
感谢您提供的任何帮助每次迭代,您都将添加到$array4并将其放入$array5中 尝试在每次迭代中重新声明$array4:
$array5 = array();
foreach ($array3 as $value) {
$array4 = array();
$array4[] = array('v' => count(search($rows, 'domaindesc', $value)));
$array4[] = array('v' => $value);
$array5[] = array('c' => $array4);
}
编辑:对于风格,我个人会这样写:
$array5 = array();
foreach ($array3 as $value) {
$array5[] = array('c' => array(
array('v' => count(search($rows, 'domaindesc', $value))),
array('v' => $value),
));
}
请注意,数组声明中的尾随逗号是有意的,这使得其他开发人员在需要时更容易向声明中添加更多项。PHP允许这样做,我利用了它
EDIT2:如果您不担心PHP代码在5.4之前的PHP版本上不起作用,我更喜欢使用方括号来声明数组,而不是数组()。它看起来更干净:
$array5 = [];
foreach ($array3 as $value) {
$array5[] = ['c' => [
['v' => count(search($rows, 'domaindesc', $value))],
['v' => $value],
]];
}
帮个忙,使用有意义的数组名。