如何在php中循环数组内部的数组?

时间:2016-06-06 18:56:12

标签: php arrays laravel-5 laravel-5.1

我试图遍历数组内部的数组,以便显示电话号码或分机号码。例如:如果用户同时拥有(电话号码和分机号码),那么我应该只显示电话号码,但有时用户只有分机号码,那么我应该显示分机号码。

这是我的代码:

  <table style="padding: 40px;margin-left: -10px;margin-top:-38px;display: inline-block;">
            <div style="margin-top:16px;margin-left:10px;">
                <input type="checkbox" id="checkAll"/>
            </div>
            <div style="padding:20px;">
                @foreach($resultArray as $key => $value)

                    @foreach($value as $key2 => $value2)
                        @if(is_array($value2))
                            @foreach($value2 as $key3 => $value3)
                                <?php
                                   // echo var_dump($value3);

                                if (in_array($value3['phoneNumber'], $value3)) {
                                    if (strlen($value3['phoneNumber']) === 11) {
                                        $value3['phoneNumber'] = ltrim($value3['phoneNumber'], 1);
                                    }
                                }
                                else{
                                    $value3['phoneNumber'] = $value3['extension'];
                                }



                                ?>

                                <tr>
                                    <td>
                                        <input class="input_checkbox" type="checkbox"
                                               id="{{$key3}}customer-name-checkbox" name="{{$key3}} "
                                               value="yes"><span style="padding-left:40px;"></span>
                                    </td>
                                    <td>{{$value3['firstName']}}  {{$value3['lastName']}}</td>
                                    <td>{{$value3['phoneNumber']}}}</td>
                                    <td><input style="margin-left:60px;float: right;" type="email" class="styled-text  rounded" name="{{$key3}}" id="{{$key3}}customer-name-inputField" placeholder="" value=""/><br/><br/>
                                    </td>
                                </tr>
                            @endforeach
                        @endif
                    @endforeach
                @endforeach
            </div>
        </table>

有人可以告诉我,我做错了吗?非常感谢你提前!!

1 个答案:

答案 0 :(得分:2)

根据您的要求,我认为您需要这样的事情:

<?php
foreach ($resultArray['searchUserResults']['searchUserResult'] as $key => $data)
{
    if (isset($data['phoneNumber']))
        echo $data['phoneNumber'];

    else if (isset($data['extension']))
        echo $data['extension'];
}
?>

这将输出两者中的任何一个,但如果两者都存在,则仅输出phoneNumber

您不需要所有嵌套的foreach循环来完成此任务。而是只迭代子数组。