2017-01-23 7 views
1

ように私は、整数の配列を出力するには、以下のワードプレスのコードを持っているが、私は、配列は、配列ではなく、文字列PHPのアレイ出力文字列

$values = get_post_custom_values('colleagues', 123); 

print_r($values); //This Outputs Array ([0]=>["418","5555"]) 

$arr = $values[0]; 
foreach($arr as $val) 
{ 
    echo $val; 
} 

ではないように思われる値にアクセスしようとすると、上記のforeachの出力のみが["418"、 "5555"]で、2つの値があると予想していますので、配列であってはいけません。

+0

'is_array()'を試しましたか? – Progrock

+0

'var_dump($ values)'を試してください。 – Progrock

答えて

0

私はこのような文字列を含む配列で$valuesを初期化した場合:

<?php 
$values = ['["418","5555"]']; 
print_r($values); //This Outputs Array ([0]=>["418","5555"]) 


$arr = $values[0]; 
foreach($arr as $val) 
{ 
    var_dump($val); 
} 

私がしますprint_rから同じ出力を得ます。そしてPHPの警告:foreach()に対して無効な引数が指定されました。

おそらくあなたの疑惑は真実です。

しかし、私はこのような値を記述する場合:

$values = [["418","5555"]]; 
print_r($values); 

私は出力を得る:

Array ([0] => Array ([0] => 418 [1] => 5555)) 
0

$values[0]の値は、配列のように見えるがありません。これは文字列として格納されます。

出力がprint_r()であることがわかっています。

print_r($values); //This Outputs Array ([0]=>["418","5555"]) 

print_rが配列として$valuesを認めたが[0] => ...の隣に同様の識別子が存在しないことに注意してください。

PHP 5.4以降では、角括弧は配列の略語になりましたので、混乱を確認するのは簡単です。

私はこれらの値がどのように保存されているかを見てから、プロセスを元に戻すことをお勧めします。

関連する問題