-1

私はこの配列を持っています:

$array = array(
    array('id' => 'test1', 
          'url' => 'test1url'
    ),

    array('id' => 'test2', 
          'url' => 'test2url'
    )
);

親キーを知らずに対応するID(test1)を知らずに「test1url」にアクセスする方法は? 親キーを知っていれば、次のように簡単にアクセスできます。

$array[0]['url'];

では、この値にアクセスする最も簡単/最速/最速/簡単な方法は何でしょうか?

ありがとう!

4

3 に答える 3

4

この場合、すべての値をループするよりも良い解決策はありません。

次のような関数を作成できます。

function findUrl($array,$id) {
    foreach($array as $arr) {
        if($arr['id'] == $id) {
            return $arr['url'];
        }
    }
}

そしてそれを呼び出します:

echo findUrl($array,"test1");

またはデータの別の表現を作成しますが、それができない場合は、このループが最適な解決策です。

于 2012-11-24T09:00:15.947 に答える
0
$array = array(
    array('id' => 'test1', 'url' => 'test1url'),
    array('id' => 'test2', 'url' => 'test2url')
);

$search = 'test1url';
foreach($array as $k=>$a){
    if(is_array($a) && in_array($search,$a)){
        echo "Key:".$k." has responded that the value of ".array_search($search,$a).' = '.$search;
    }
}
于 2012-11-24T08:47:18.123 に答える
0

そのようにアレイを構築する理由はありますか? 親配列の機能は何ですか?

次を使用できます。

http://www.php.net/manual/en/function.array-search.php

ただし、最初に親配列をループする場合にのみ機能します。

<?php
$array = array(
    array('id' => 'test1', 
          'url' => 'test1url'
    ),

    array('id' => 'test2', 
          'url' => 'test2url'
    )
);


foreach ($array as $valuearray) {
    $key = array_search('test1url', $valuearray);
    echo $key;  // = url
}
?>

または in_array(); を使用します。親配列をループするとき。

于 2012-11-24T08:58:33.513 に答える