检测数组是否包含另一个数组

Detect if array contains another array

我正在为我的网站使用外部 API。当用户 select 城市和城镇,API returns 社区。但问题是,如果只有一个 neighborhood 数组包含 name 和 neighborhood id。但是如果有多个,它包含每个邻域的多个数组。

单个示例;

array(
'Code' => 123,
'NeighborhoodName' => 'Name'
)

多个例子

array(
    array(
    'Code' => 123,
    'NeighborhoodName' => 'Name'
    ),
array(
    'Code' => 123,
    'NeighborhoodName' => 'Name'
    )

)

我必须在 select 框中向用户显示数据。

<select  id="nh" class="form-control" name="belde" wire:model='selectedNH'>
            <option value="" selected default></option>
            
                @foreach($nh as $nhArray)
                     <option value="{{$nhArray['Kod']}}">{{$koyArray['KOY_Adi']}}</option>
                 @endforeach
            @endif
        </select>

正如预期的那样,如果只有一个街区,我的代码会抛出非法字符串偏移 'Kod' 错误。我尝试获取比较数组子元素的类型,但没有成功

试试这个:

@if(isset($nh['Kod']))
    <option value="{{ $nh['Kod'] }}">{{ $nh['KOY_Adi'] }}</option>
@else
    @foreach($nh as $nhArray)
        <option value="{{$nhArray['Kod']}}">{{$koyArray['KOY_Adi']}}</option>
    @endforeach
@endif

答案的一些解释:在if语句中,你检查数组键['Kod'],如果数组键存在,那么你知道这个数组中所有的地方都没有显示,并且然后在 else 语句中,你做你之前做的,遍历数组。

您尝试过使用 is_array() 吗?您可以在这里阅读更多相关信息:https://www.php.net/manual/en/function.is-array.php