2017-10-11 13 views
0

我尝试这样的:如何检查数组2中的索引没有循环在PHP中?

<?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 

的代码使用循环

但是,我不想使用循环

我该怎么办?

+0

你想要什么?我不明白你想要什么索引。你正在寻找与参数名称匹配你的var'$ team'的同一个对象的id值吗? – Odyssey1111

回答

1

使用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; 
    } 
?> 
0

如果要访问多维数组中的特定属性,可以执行以下操作。

例如,返回ID是第一组的:

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

简单地改变[0][1]或任何提数组你想打电话,然后简单地使用属性。但如果你想打印整个阵列,我真的建议你留在循环中。有了循环,你一定会得到所有的元素。假设你像我说的那样对它进行硬编码,然后一个月后你添加了10个新数组,所以你必须编辑你的整个代码。

1

尝试以下操作:

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

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

相关问题