Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的循环数组_Php_Arrays_Foreach - Fatal编程技术网

PHP中的循环数组

PHP中的循环数组,php,arrays,foreach,Php,Arrays,Foreach,如果数据为1或大于1,如何循环数组 我试过了 foreach($array['bGeneral'] as $item) { echo $item['bItem']; } 但是对于包含1个数据的数组,会出现错误基本上,您需要检查$array['bGeneral']的第一个元素是数组还是数据值,如果是,则以不同的方式处理数据。您可以尝试以下方法: if (isset($array['bGeneral']['bItem'])) { // only one set of values

如果数据为1或大于1,如何循环数组

我试过了

foreach($array['bGeneral'] as $item) {
    echo $item['bItem'];
}

但是对于包含1个数据的数组,会出现错误

基本上,您需要检查
$array['bGeneral']
的第一个元素是数组还是数据值,如果是,则以不同的方式处理数据。您可以尝试以下方法:

if (isset($array['bGeneral']['bItem'])) {
    // only one set of values
    $item = $array['bGeneral'];
    // process item
}
else {
    // array of items
    foreach ($array['bGeneral'] as $item) {
        // process item
    }
}
为了避免代码重复,您可能希望将项目处理代码放入函数中

或者,您可以在只有一个值时创建多维数组,然后继续处理多个值:

if (isset($array['bGeneral']['bItem'])) {
    $array['bGeneral'] = array($array['bGeneral']);
}
foreach ($array['bGeneral'] as $item) {
    // process item
}

不要忘记递归-有时它是最好的选择:

function scan_data($data, $path = null) {
    if (!is_array($data))
        echo "{$path} : {$data}\n";
    else
        foreach ($data as $k => $v)
            scan_data($v, $path . '/' . $k);
}

$data = [
    ['a' => 1,                    'b' => 2], 
    ['a' => ['c' => 3, 'd' => 4], 'b' => 5],
    ['a' => 1,                    'b' => ['e' => ['f' => 1, 'g' => 2], 'h' => 6] ]
   ];

scan_data($data);
输出:

/0/a:1
/0/b:2
/1/a/c:3
/1/a/d:4
/1/b:5
/2/a:1
/2/b/e/f:1
/2/b/e/g:2
/2/b/h:6


您可以在循环中编写循环。请在代码中添加示例数组。另外,1个条目出现的错误是什么?在屏幕截图中没有
bDate
是否正确?对不起,我写错了,bDate应该是bitem无需担心-有时你只需要一双新的眼睛来观察问题。