我有一个多维数组:
$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');
也许是内置函数?
答案 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)
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