2017-10-11 11 views
0

私はこのようにしてみてください:私はループを使用したくない、PHPでループなしで配列2次元のインデックスをチェックする方法はありますか?

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 

ループ

を使用してコードしかし

:コードが実行された場合、このような結果、

<?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(); 
?> 

どうすればいいですか?

+0

正確に何をしたいですか?私はあなたが望むインデックスを理解していません。パラメータ名があなたのvar '$ team'にマッチする同じオブジェクトを使ってid値を探していますか? – Odyssey1111

答えて

1

、および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"]; 

だけ[1]または何に言及する配列あなたたいコールに[0]を変更し、単に属性を使用します。しかし、配列全体を印刷したい場合は、ループにとどまることをお勧めします。ループを使うと、すべての要素が得られるはずです。私が言ったようにそれをハードコーディングし、1ヶ月後に10個の新しい配列を追加するので、コード全体を編集する必要があります。 array_search()を使用して

1

次のことを試してみてください。

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

これはnameで配列を検索し、返し、メインアレイのkeyを返し、あなたがそれを使用することができますネストされた配列の内容にアクセスし、その値をに代入します。 $team_selected

関連する問題