我有一个这样的数组:
Array (
[0] => Array (
[0] => 510
[1] => 984
[2] => 1045
[3] => 2068
[4] => 1054
[5] => 673
)
[1] => Array (
[0] => 1163
[1] => 1982
[2] => 2067
[3] => 3989
[4] => 1940
[5] => 1242
)
[2] => Array (
[0] => june
[1] => july
[2] => august
[3] => september
[4] => october
[5] => november
)
)
我想一次只访问数组中的一个数组并回显它们。
例如,我得到:510,984,1045,2068,1054和673作为一个结果。
我看过多个主题和答案,但没有什么可以解决我的问题,我已经能够打印出所有的值,但我只是想要一些特别的。
我将其存储在变量中:$array_item
我最近的尝试是:
foreach ($array_item as $inner) {
if (is_array($inner)) {
foreach ($inner[0] as $value) {
echo "$value \n";
}
}
}
这给了我:警告:为foreach()提供的参数无效。
我确信这会起作用,我做错了什么?
答案 0 :(得分:3)
在您的代码中$inner[0]
是内部数组元素之一,如510
。你无法绕过它。
如果您只想循环遍历$array_item[0]
,请不要遍历整个阵列。
if (is_array($array_item[0])) {
foreach ($array_item[0] as $value) {
echo "$value\n";
}
}
答案 1 :(得分:0)
is_array($ array_item)是否返回true?
if (is_array($array_item)) {
foreach ($array_item) {
if (is_array($inner)) {
foreach ($inner as $value) {
echo "$value \n";
}
}
}
}
编辑:另外,$ inner [0]不是数组。 $ inner是数组。
答案 2 :(得分:0)
我会使用implode,http://php.net/manual/en/function.implode.php
if (is_array($array_item[0])) {
echo implode(PHP_EOL, $array_item[0]);
}
我看到有人发表评论说他只希望输出第一个数组而不是所有数组。
{{1}}
答案 3 :(得分:0)
你永远不知道什么可以解决问题
+----------+-------+------------+-------------+
| Doc_Type | Batch | Soaking_In | Soaking_Out |
+----------+-------+------------+-------------+
| AA | 1 | 20,50 | 0,00 |
| BB | 2 | 0,00 | 10,00 |
| AA | 3 | 6,00 | 0,00 |
| BB | 4 | 0,00 | 7,00 |
| AA | 5 | 8,00 | 0,00 |
+----------+-------+------------+-------------+
$array_group = array();
if (isset($array_item[0]) and is_array($array_item[0])) {
foreach ($array_item[0] as $value) {
$array_group[] = $value;
}
应输出
$array_group