假设我有以下数据。
现在我正在尝试将每个组的所有值分组到一个数组中。
假设$ temp_array包含了我拥有的所有结果。 现在我试图根据id -
对所有数据进行分组所以我想这样做---
array(
values (
id -225
name1= hello
name2= 45
name3= burger
,
id -225
name1= bacon
name2= cheese))
所以我试过这样---
$count=count($temp_array); // $temp_array contains all results
foreach ($temp_array as $key => $var) {
for ($j = 0; $j < count($count); ++$j) {
$data = array();
$data['id'] = $var[$j]['id'];
$data['name'] = $var[$j]['name'];
}}
但问题是它只循环一次,意味着[0]
值。
所以我得到了结果---
array(
values (
id -225
name1= hello
name2= 0
name3= 0
,
id -225
name1= bacon
name2= 0
...))
我的结果---
Array
(
[0] => Array // group number 0
(
[0] => Array
([id] => 225
[name] => hello
)
[1] => Array
(
[id] => 225
name] => ham
)
[2] => Array
(
[id] => 225
)
[3] => Array
(
[id] => 225
name] => burger
)
[1] => Array // group number 1
(
[0] => Array
(
[id] => 45
name] => bacon
)
[1] => Array
(
[id] => 45
name] => cheese
)
有人可以帮我解决这个问题吗
答案 0 :(得分:4)
$ count的值是一个整数,所以你正在使用额外的count()函数
替换
for ($j = 0; $j < count($count); ++$j) {
带
for ($j = 0; $j < $count; ++$j) {
你也可以尝试这样:
$data = array();
foreach($tempArrray as $row) {
$data[$row['id']][] = $row;
}
答案 1 :(得分:1)
$count
是一个整数。
如果您count($count)
,则会计算$count
的字符串长度 1 。
count()
函数的工作方式不同。
如果您向其传递任何整数值,它将自动将其强制转换为字符串并计算长度。
对于字符串,它会计算其中的字符数。
对于数组,它会计算其中的元素数。
在你的情况下,你得到字符串长度(即1)而不是数组元素数。
更改强>
for ($j = 0; $j < count($count); ++$j) {
要强>
for ($j = 0; $j < $count; ++$j) {
答案 2 :(得分:-1)
作为foreach的内部,你应该将你的输出结合起来:http://php.net/manual/en/language.operators.string.php
$count=count($temp_array); // $temp_array contains all results
$data = '';
foreach ($temp_array as $key => $var) {
for ($j = 0; $j < count($count); ++$j) {
$data .= array();
$data['id'] .= $var[$j]['id'];
$data['name'] .= $var[$j]['name'];
}}
var_dump($data);
答案 3 :(得分:-1)
您的阵列不正确。你的输出是这样的:
grunt // { env : "staging" }
grunt --env=UAT // { env : "UAT" }
我已经编辑了数组并使用您制作的代码对其进行了测试,并且运行正常。像这样构建:
Array
(
[0] => Array // group number 0
(
[0] => Array
([id] => 225
[name] => hello
)
[1] => Array
(
[id] => 225
name] => ham
)
[2] => Array
(
[id] => 225
)
[3] => Array
(
[id] => 225
name] => burger
) // you need to close this array [0] with another ),
[1] => Array // group number 1
(
[0] => Array
(
[id] => 45
name] => bacon
)
[1] => Array
(
[id] => 45
name] => cheese
以及他们之前提到的内容
$array = Array
(
'0' => Array // group number 0
(
'0' => Array
('id' => 225,
'name' => 'hello'
),
'1' => Array
(
'id' => 225,
'name' => 'ham'
),
'2' => Array
(
'id' => 225
),
'3' => Array
(
'id' => 225,
'name' => 'burger'
)),
'1' => Array // group number 1
(
'0' => Array
('id' => 222,
'name' => 'test'
),
'1' => Array
(
'id' => 225,
'name' => 'ham'
),
'2' => Array
(
'id' => 225
)));