4

次のような大きなPHP配列があります。

$list = array(
    array(
        'id'     = '3243'
        'link'   = 'fruits'
        'lev'    = '1'
    ),
    array(
        'id'     = '6546'
        'link'   = 'apple'
        'lev'    = '2'
    ),
    array(
        'id'     = '9348'
        'link'   = 'orange'
        'lev'    = '2'
    )
)

特定の を含むサブ配列を取得したいid

現在、次のコードを使用しています。

$id = '3243'
foreach ($list as $link) {
    if (in_array($id, $link)) {
        $result = $link;
    }
}

それは機能しますが、これを行うより良い方法があることを願っています。

4

3 に答える 3

4

あなたはできる

  • $link['id']==$id代わりに書くin_array($id, $link)ほうが安くなります。
  • 無駄なループを避けるためbreak;に後に命令を追加する$result = $link;
于 2012-12-18T12:53:46.230 に答える
2

この質問が尋ねられたとき、この答えはうまくいきませんでしたが、今ではこのジレンマを解決するための非常に簡単な方法があります.

PHP 5.5 では、次のことができます。

$newList = array_combine(array_column($list,'id'),$list);

そして、次のことが真になります。

$newList[3243] = array(
                         'id'   = '3243';
                         'link' = 'fruits'; etc...
于 2015-07-22T23:59:46.167 に答える