0

私はこの配列を持っています -それは多次元配列であり、私は 0 インデックスを知りません:

Array
(
    [0] => Array
        (
            [foo] => 1111
            [bar] => example
        )

)

そして、キーから値を取得するには、ネイティブphp関数を使用して1行で必要ですbarcurrentkey、 、などといろいろ組み合わせてみarray_keysました。私が得current($array)たもの:

Array
(
    [foo] => 1111
    [bar] => example
)

I discoverarray_keysを使用すると、2 番目の引数を使用して、検索する値を指定できます。しかし、私は値を知らず、キーだけを知り、array_valuesfind (:o) の 2 番目の引数を提案しませんでした。

ここに私は今います:current(array_keys(array_flip(current($b))), 'bar')うまくいきませんでした。しかし

$c = array_flip(current($b));
print_r(current(array_keys($c, 'bar')));

動作します - 「例」を取得します。(ちなみに、なぜこれらの 2 行は機能していて、前の行は機能していないのですか?)

そして、これを使用するのは醜いことは知っていますが、それ以外のarray_flip方法はわかりません。何か案が ?ありがとう。

4

7 に答える 7

5

使用を妨げているもの

$value=$myArray[0]["bar"];
echo $value;
于 2013-04-26T14:57:19.857 に答える
2

PHP 5.4+ でこれを試してください:

<?php
$a = array(array('foo' => 1111, 'bar' => 'example'));
print_r(current($a)['bar']);
?>
于 2013-04-26T15:22:34.223 に答える
1

方法を聞かないでください LOL:

$a = array(array('foo' => 1111, 'bar' => 'example'));
echo array_map(function($v){if(isset($v['bar'])){return $v['bar'];}}, $a)[0];

ノート:

  • これは、PHP 5.4以降の最新バージョンでのみ機能します。

  • 「バー」キーがない場合、これはエラーをスローします

オンラインデモ


より良い解決策:

$a = array(
    array('aaa' => 2222, 'bbb' => '333'),
    array('foo' => 1111, 'bar' => 'example'),
    array('wut' => 'lol', 'zzz' => 'ggg')
);

echo array_values(array_filter(array_map(function($v){if(isset($v['bar'])){return $v['bar'];}}, $a)))[0];

オンラインデモ

于 2013-04-26T15:11:24.617 に答える
0

[0] を使用したくない場合は、代わりにこれを使用できます。

$value = null;
foreach($array as $each)
{
   if(isset($each['bar']))
      $value = $each['bar'];
}
于 2013-04-26T15:07:35.243 に答える
0

次のコードを使用します。

echo $array[0]['bar'];

または、PHP 関数を使用します。

echo array_pop(array_shift($array));

の最初の要素を抽出します$array:

Array
(
    [foo] => 1111
    [bar] => example
)

次に、この配列の最後の要素を抽出して表示します。

example
于 2013-04-26T15:01:43.810 に答える