从二维数组的每个值的第一个成员制作一维数组| PHP
-
22-07-2019 - |
题
你怎么能这样做呢?看到这里我的代码不能正常工作
for($i=0;i<count($cond);$i++){
$cond[$i] = $cond[$i][0];
}
解决方案
这应该工作。为什么它不工作?你得到了什么错误讯息? 这是代码我会使用:
$inArr;//This is the 2D array
$outArr = array();
for($i=0;$i<count($inArr);$i++){
$outArr[$i] = $inArr[$i][0];
}
其他提示
它可以是像这样简单:
$array = array_map('reset', $array);
有可能的问题,如果源阵列不是数值索引。尝试这个代替:
$destinationArray = array();
for ($sourceArray as $key=>$value) {
$destinationArray[] = $value[0]; //you may want to use a different index than '0'
}
// Make sure you have your first array initialised here!
$array2 = array();
foreach ($array AS $item)
{
$array2[] = $item[0];
}
假设你想有相同的变量名之后,可以将新的数组重新分配回旧的。
$array = $array2;
unset($array2); // Not needed, but helps with keeping memory down
此外,您也许能,取决于什么是数组中,做这样的事情。
$array = array_merge(array_values($array));
如前所述,您的代码将无法在不同的情况下工作。 尝试初始化您的阵列与该值:
$cond = array(5=>array('4','3'),9=>array('3','4'));
一个解决方案,我好可读也就是以下代码:
//explain what to do to every single line of the 2d array
function reduceRowToFirstItem($x) { return $x[0]; }
// apply the trasnformation to the array
$a=array_map('reduceRowTofirstItem',$cond);
可以读取阵列地图进行彻底解释参考。
可以还选择使用 array_walk 一个有轻微的变化>(它在阵列上操作“就地”)。请注意该函数不返回值,他的参数通过引用传递。
function reduceToFirstItem(&$x) { $x=$x[0]; }
array_walk($cond, 'reduceToFirstItem');
不隶属于 StackOverflow