1

jsonからデコードした連想配列がありjson_decode second value true、次のようになります。

Array (
    [test] => Array
        (
            [start] => 1358766000
            [end] => 1358775000
            [start_day] => 21
            [end_day] => 21
        )

)

しかし、何らかの理由で$ array [0]を実行すると、nullになりますか?インデックスで配列を取得するにはどうすればよいですか?キー名ではありませんか?

4

4 に答える 4

2

配列の最初のレベルは数値ではなく、連想配列です。あなたがする必要があります:

$array['test']['start']

または、最初の要素を取得するには:

reset($array);
$first_key = key($array);
print_r($array[$first_key]);
于 2013-01-17T22:52:21.873 に答える
2

array_values()キーの番号が。から付け直された配列内のすべての値が表示され0ます。

于 2013-01-17T22:53:01.880 に答える
0

を使用できますcurrent

$first = current($array); // get the first element (in your case, 'test')

var_dump($first);
于 2013-01-17T22:51:03.257 に答える
0

これは仕様によるものです。。。testJSONは、JSONオブジェクトを含むキー(明らかに)を使用していました。を実行すると、キーは保持されますjson_decode。インデックスでアクセスすることはできませんが、を使用してすべてをループすることはできますforeach

あなたのコメントから、連想配列から前の要素と次の要素にアクセスしたいようです。これを直接行う方法はわかりませんが、ハック的な方法は次のようになります。

$testArr = array('a'=>'10', 'b'=>'2', 'c'=>'4');
// get numeric index of the element of interest
$keys = array_keys($testArr);
$i = array_search('b', $keys);
// get key of next element
$nextElementKey = $keys[$i+1];
// next element value
$nextElementValue = $testArry[$nextElementKey];
// get key of previous element
$prevElementKey = $keys[$i-1];
// prev value
$[prevElementValue = $testArry[$prevElementKey];

最初と最後の値を処理するために、前と次のキー計算の周りにエラーチェックを追加することをお勧めします。

キーのデータを気にしない場合は、Ignacioのソリューションを使用するarray_keys方がはるかに効率的です。

于 2013-01-17T22:52:41.763 に答える