如何将数组展平为一串值?

时间:2011-10-29 20:53:41

标签: php arrays

我有一个看起来像这样的数组。

'keyvals' => 
    array
      'key1' => 'value1'
      'key2' => 'value2'
      'key3' => 'value3'

是否有一种很酷的方法可以将其展平为像'value1 value2 value3'这样的字符串?如果有新的东西,我也可以访问PHP 5.3。

3 个答案:

答案 0 :(得分:15)

$someArray = array(
  'key1' => 'value1',
  'key2' => 'value2',
  'key3' => 'value3'
);
implode(' ', $someArray); // => "value1 value2 value3"

答案 1 :(得分:5)

请参阅implode

$flat = implode(' ', $array['keyvals']);

答案 2 :(得分:3)

如果必须将此数组展平为单维 - 请查看此函数(来自Kohana fw)

/**
     * Convert a multi-dimensional array into a single-dimensional array.
     *
     *     $array = array('set' => array('one' => 'something'), 'two' => 'other');
     *
     *     // Flatten the array
     *     $array = Arr::flatten($array);
     *
     *     // The array will now be
     *     array('one' => 'something', 'two' => 'other');
     *
     * [!!] The keys of array values will be discarded.
     *
     * @param   array   array to flatten
     * @return  array
     * @since   3.0.6
     */
    function flatten($array)
    {
        $flat = array();
        foreach ($array as $key => $value)
        {
            if (is_array($value))
            {
                $flat += flatten($value);
            }
            else
            {
                $flat[$key] = $value;
            }
        }
        return $flat;
    }

但如果您只想获取字符串 - 请使用原生implode()函数