【问题标题】:How can I check index in array 2 dimensional without loop in php?如何在没有循环的php中检查二维数组中的索引?
【发布时间】:2017-10-11 13:59:45
【问题描述】:

我尝试这样:

<?php 
    $list_team = array( 
                (object)array(
                    'id' => 1, 
                    'name' => 'chelsea.jpg'
                ),
                (object)array(
                    'id' => 2, 
                    'name' => 'mu.jpg'
                ),
                (object)array(
                    'id' => 3, 
                    'name' => 'arsenal.jpg'
                ),
            );

    $team = 'chelsea.jpg';

    echo '<pre>';print_r($team);echo '</pre>';
    echo '<pre>';print_r($list_team);echo '</pre>';

    foreach($list_team as $key => $value) {
        if($value->name == $team)
            $team_selected = $team;
    }
    echo '<pre>';print_r($team_selected);echo '</pre>';
    die();
?>

如果代码执行,结果如下:

chelsea.jpg

Array

(

[0] => stdClass Object   ( [id] => 1

[name] => chelsea.jpg

)

[1] => stdClass Object

(

[id] => 2

[name] => mu.jpg

)

[2] => stdClass Object

(

[id] => 3

[name] => arsenal.jpg

)

)

chelsea.jpg

使用循环的代码

但是,我不想使用循环

我该怎么做?

【问题讨论】:

  • 你到底想要什么?我不明白你想要什么索引。您是否正在寻找参数名称与您的 var $team 匹配的同一对象的 id 值?

标签: php arrays loops


【解决方案1】:

尝试以下方法:

$key = array_search($team, array_column($list_team, 'name'));
$team_selected = $list_team[$key]->name;

这将使用name 搜索数组并返回并返回主数组的key,您可以使用它来访问嵌套数组的内容并将值分配给。 $team_selected

【讨论】:

    【解决方案2】:

    使用array_search()array_column()

    <?php
    
    $list_team = array( 
                    (object)array(
                        'id' => 1, 
                        'name' => 'chelsea.jpg'
                    ),
                    (object)array(
                        'id' => 2, 
                        'name' => 'mu.jpg'
                    ),
                    (object)array(
                        'id' => 3, 
                        'name' => 'arsenal.jpg'
                    ),
                );
    
        $team = 'chelsea.jpg';
    
        // array column, returns all value of sub array, with key name
        // array_search will return key
        $key = array_search($team, array_column($list_team, 'name'));
    
        if($key!==false){
    
            // your object will be
            print_r($list_team[$key]);
    
            // access remaining..
            echo $list_team[$key]->name.' '. $list_team[$key]->id.PHP_EOL;
        }
    ?>
    

    【讨论】:

      【解决方案3】:

      如果你想访问多维数组中的特定属性,你可以这样做。

      例如返回第一个数组的ID:

      echo $list_team[0]["id"];
      

      只需将[0] 更改为[1] 或任何提及您要调用的数组,然后只需使用该属性即可。但是如果你想打印整个数组,我真的建议你保持循环。使用循环,您可以确保获得所有元素。假设您像我说的那样对其进行硬编码,然后一个月后添加 10 个新数组,因此您必须编辑整个代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-12
        • 2011-03-02
        • 2020-10-18
        • 2014-02-13
        • 1970-01-01
        • 2019-07-24
        • 2017-03-24
        • 1970-01-01
        相关资源
        最近更新 更多