从多维返回monodimensional-array

时间:2011-02-18 18:14:04

标签: php

我有一个多维数组:

$array=array( 0=>array('text'=>'text1','desc'=>'blablabla'),
              1=>array('text'=>'text2','desc'=>'blablabla'),
              2=>array('text'=>'blablabla','desc'=>'blablabla'));

是否有基于$ text值返回单维数组的函数?

示例:

monoarray($array);
//returns: array(0=>'text1',1=>'text2',2=>'blablabla');

也许是内置函数?

6 个答案:

答案 0 :(得分:1)

这将返回内部数组中第一个值的数组:

$ar = array_map('array_shift', $array);

对于最后的值,这样做:

$ar = array_map('array_pop', $array);

如果你想从内部数组中获取另一个元素,你必须编写自己的函数(PHP 5.3态度):

$ar = array_map(function($a) {
    return $a[(key you want to return)];
}, $array);

答案 1 :(得分:1)

这样做:

function GetItOut($multiarray, $FindKey)
{
   $result = array();
   foreach($multiarray as $MultiKey => $array)
        $result[$MultiKey] = $array[$FindKey];

   return $result;
}

$Result = GetItOut($multiarray, 'text');
print_r($Result);

答案 2 :(得分:0)

最简单的方法是使用foreach循环定义自己的函数。你可以使用众多的php array functions中的一个,但它可能不值得你花时间。

foreach循环看起来像:

function monoarray($myArray) {
    $output = array();

    foreach($myArray as $key=>$value) {
        if( $key == 'text' ) {
            $output[] = $value;
        }
    }

    return $output;
}

答案 3 :(得分:0)

如果您的密钥顺序永远不会改变(即:text始终是第一个),您可以使用:

$new_array = array_map('current', $array);

否则,您可以使用:

$new_array = array_map(function($val) {
    return $val['text'];
}, $array);

或者:

$new_array = array();
foreach ($array as $val) {
    $new_array[] = $val['text'];
}

答案 4 :(得分:0)

Try this

function monoarray($array)
{
    $result = array();

    if (is_array($array) === true)
    {
        foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $value)
        {
            $result[] = $value;
        }
    }

    return $result;
}

答案 5 :(得分:-1)

使用PHP,您只需使用函数print_r();

所以 - >的print_r($阵列);

希望能帮到你:D