2010-09-29 103 views
1

我需要將此數組轉換爲單維索引數組或字符串。很高興丟棄第一個鍵(0,1),只保留這些值。將此關聯數組轉換爲字符串或單個索引數組

$security_check_whitelist = array 
    0 => 
    array 
     'whitelisted_words' => string 'Happy' (length=8) 
    1 => 
    array 
     'whitelisted_words' => string 'Sad' (length=5) 

我試過array_values(),但它返回完全相同的數組結構。

這工作:

$array_walker = 0; 
$array_size = count($security_check_whitelist); 

while($array_walker <= $array_size) 
{ 
    foreach($security_check_whitelist[$array_walker] as $security_check_whitelist_value) 
    { 
     $security_check[] = $security_check_whitelist_value; 
    } 
    $array_walker++; 
} 

但它返回:

警告: 的foreach()

我如何關聯數組轉換沒有收到所提供的參數無效警告信息?有沒有更好的辦法?

回答

2
foreach ($security_check_whitelist as &$item) { 
    $item = $item['whitelisted_words']; 
} 

或者乾脆:

$security_check_whitelist = array_map('current', $security_check_whitelist); 
+0

完美,希望找到更緊湊的解決方案。 – JMC 2010-09-29 07:14:06

2

這裏的問題可能是,你應該只走到ñ -1,所以$array_walker < $array_size

+0

+1 - 良好的眼睛,這是警告的原因。 – JMC 2010-09-29 07:13:06

1

那麼「whitelisted_words」也是一個數組嗎?如果是這樣,我認爲下面將工作:

$single_dim_array = array(); 
foreach(array_values($security_check_whitelist) as $item) { 
    foreach($item['whitelisted_words'] as $word) { 
     $single_dim_array[] = $word; 
    } 
} 

然後變量$ single_dim_array包含所有列入白名單的話。