2017-01-23 239 views
1

我具有低於以輸出wordpress的代碼整數數組,但是當我試圖訪問它似乎不能是數組而是串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開始,方括號變成了數組的簡寫形式,因此很容易發現混淆。

我會建議看看如何保存這些值在第一個地方,然後扭轉過程。