在 Laravel 视图中的嵌套循环内有条件地打印值

问题描述 投票:0回答: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>

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

php arrays laravel loops
1个回答
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
循环来完成此操作。相反,您只迭代子数组。

© www.soinside.com 2019 - 2024. All rights reserved.