Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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 使用foreach的数组中的多个数组_Php_Arrays_Loops_Foreach - Fatal编程技术网

Php 使用foreach的数组中的多个数组

Php 使用foreach的数组中的多个数组,php,arrays,loops,foreach,Php,Arrays,Loops,Foreach,我使用foreach来回送多维数组 我知道还有另一种简单的方法,但我想尝试使用foreach 这是我的密码: <?php $cars = array( array("Volvo", 22, 18), array("BMW", 15, 13, array( 'satu' => 'heelo' ) ), array("Saab", 5, 2), array("Land Rover", 17,

我使用foreach来回送多维数组

我知道还有另一种简单的方法,但我想尝试使用foreach

这是我的密码:

<?php
$cars = array(
    array("Volvo", 22, 18),
    array("BMW", 15, 13, 
        array(
            'satu' => 'heelo'
        )
    ),
    array("Saab", 5, 2),
    array("Land Rover", 17, 15, 
        array('satu','dua')
    )
);

foreach ($cars as $kebal)
{
    if (is_array ($kebal))
    {
        foreach ($kebal as $katak)
        {
            echo($katak);
            echo "<br>";
            echo "<br>";            
        }
    }
    else
    {
        echo ($kebal);
        echo "<br>";    
    }
}
?>
那么,如何正确地编写代码呢?
谢谢。

您遇到的问题是数组中的大多数元素都是字符串或整数,但也有两个元素是数组。最好的办法是先测试该值是否为数组,然后决定执行什么操作

<?php
    $cars = array(
        array("Volvo",22,18),
        array("BMW",15,13,array('satu'=>'heelo')),
        array("Saab",5,2),
        array("Land Rover",17,15,array('satu','dua'))
    );

    function myLoop($inputData){
        if( is_array($inputData) ){
            foreach($inputData as $value){
                myLoop($value);
                echo "<br>";
            }
        } else {
            echo "$inputData<br>";
        }
    }

    myLoop($cars);
?>

您遇到的问题是数组中的大多数元素都是字符串或整数,但也有两个元素是数组。最好的办法是先测试该值是否为数组,然后决定执行什么操作

<?php
    $cars = array(
        array("Volvo",22,18),
        array("BMW",15,13,array('satu'=>'heelo')),
        array("Saab",5,2),
        array("Land Rover",17,15,array('satu','dua'))
    );

    function myLoop($inputData){
        if( is_array($inputData) ){
            foreach($inputData as $value){
                myLoop($value);
                echo "<br>";
            }
        } else {
            echo "$inputData<br>";
        }
    }

    myLoop($cars);
?>

…但我想尝试使用foreach

好的-代码不能正常工作的原因是,当你到达数组时,例如
satu=>heelo
你只是想回显它,因为此时你没有处理它

就在外面:

foreach ($cars as $carOptions) {
    foreach ($carOptions as $kebal) {
        if (is_array($kebal)) {
            foreach ($kebal as $katak) {
                echo $katak;
                echo "<br>";
                echo "<br>";            
            }
        } else {
            echo $kebal;
            echo "<br>";
        }
    }
}
foreach($cars as$carOptions){
foreach($carOptions作为$kebal){
if(is_数组($kebal)){
foreach($kebal作为$katak){
echo$katak;
回声“
”; 回声“
”; } }否则{ echo$kebal; 回声“
”; } } }
…但我想尝试使用foreach

好的-代码不能正常工作的原因是,当你到达数组时,例如
satu=>heelo
你只是想回显它,因为此时你没有处理它

就在外面:

foreach ($cars as $carOptions) {
    foreach ($carOptions as $kebal) {
        if (is_array($kebal)) {
            foreach ($kebal as $katak) {
                echo $katak;
                echo "<br>";
                echo "<br>";            
            }
        } else {
            echo $kebal;
            echo "<br>";
        }
    }
}
foreach($cars as$carOptions){
foreach($carOptions作为$kebal){
if(is_数组($kebal)){
foreach($kebal作为$katak){
echo$katak;
回声“
”; 回声“
”; } }否则{ echo$kebal; 回声“
”; } } }

循环不够深,您还有另一个维度
数组('satu'=>'heelo')
,只需卷起一个递归函数或使用SPL@Rizier123怎样foreach再次使用is_数组?@Ghost spl?对不起,我还在学习..你可以搜索它,只是研究你的方式,有很多content@Ghost谢谢你的建议。现在阅读并尝试:)循环不够深,您仍然有另一个维度
数组('satu'=>'heelo')
,只需卷起一个递归函数或使用SPL@Rizier123怎样foreach再次使用is_数组?@Ghost spl?对不起,我还在学习..你可以搜索它,只是研究你的方式,有很多content@Ghost谢谢你的建议。现在阅读并尝试:)@RobbieAverill,谢谢你。我犯了个错误,忘了我的“foreach”循环谢谢你们。我将保留您的建议,以便在阵列中进一步使用。再次感谢@RobbieAverill,谢谢你。我犯了个错误,忘了我的“foreach”循环谢谢你们。我将保留您的建议,以便在阵列中进一步使用。再次感谢!你的建议和解释让我很清楚!现在,如果数组中有许多数组,我可以理解如何将foreach用于多维数组。谢谢!@穆罕默德-这个答案有效,并且符合你的问题。我完全同意@ThrowBackDewd的观点——你应该使用一个递归函数,就像他的回答中那样,以防它发生变化。它也比嵌套循环更整洁。你的建议和解释真的让我很清楚!现在,如果数组中有许多数组,我可以理解如何将foreach用于多维数组。谢谢!@穆罕默德-这个答案有效,并且符合你的问题。我完全同意@ThrowBackDewd的观点——你应该使用一个递归函数,就像他的回答中那样,以防它发生变化。它也比嵌套循环更整洁