将此关联数组转换为字符串或单个索引数组

时间:2010-09-29 06:57:21

标签: php associative-array

我需要将此数组转换为单维索引数组或字符串。很高兴丢弃第一个键(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()

如何在不接收警告消息的情况下转换关联数组?还有更好的方法吗?

3 个答案:

答案 0 :(得分:2)

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

或者简单地说:

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

答案 1 :(得分:2)

这里的问题可能是你应该只走到 N -1,所以$array_walker < $array_size

答案 2 :(得分: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包含所有列入白名单的单词。