1

多くの検索(およびマルチディムに関する無限の投稿を見つけましたが、単一のディムはありませんでした)の後、私はこの質問をするだろうと思いました.

私は配列を持っています

$arr = array('foo' => 'bar');

の出力を探しています

$str = 'foo bar';

これはワンライナーである必要があり、再帰ループなどはありません。何らかのラムダでなければならないと考えています。ただし、この配列には複数のキーと単一の値しかありません。

最終的には次のようになると思います

$arr = array('foo' => 'bar');
echo 'Authorization: '  . array_walk($arr, function ($v, $k) { echo "$k $v"; });

残念ながら、これは次のようになりますfoo barAuthorization: 1

1 がどこから来たのか見当がつかない =P

4

3 に答える 3

7

配列が初期化されたばかりで、ポインタが配列の先頭にあるため、これは非常に簡単です。

echo 'Authorization: ' . key($arr) . ' ' . current($arr);

もちろん、すでに配列からデータを読み取っている場合は、reset()これを実行する前に、配列の先頭へのポインターを返すために実行する必要があります。

于 2013-02-21T01:36:35.807 に答える
-1

PHPは、関数の前にある文字列を処理する前に関数を処理します。echo関数を。に置き換えてみてくださいreturn。1は、array_walk関数の正常な処理に由来すると思います。

echo 'Authorization: '  . array_walk($arr, function ($v, $k) { return "$k $v"; });

更新:Example#1http://php.net/manual/en/function.key.phpを確認してください

于 2013-02-21T01:32:50.597 に答える
-3

「ただし、この配列には、単一のキーと単一の値しかありません。」

echo 'Authorization: '  .  array_shift(array_keys($arr)). ' ' . array_shift($arr) ; 
于 2013-02-21T01:36:30.963 に答える