Php 操纵多维数组
我有一个mysql查询,它在PHP中以如下数组返回我Php 操纵多维数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个mysql查询,它在PHP中以如下数组返回我 array( [0] -> ([cred_id],[date],[value]); [1] -> ([cred_id],[date],[value]); [2] -> ([cred_id],[date],[value]); [3] -> ([cred_id],[date],[value]); [4] -> ([cred_id],[date],[value]); [5
array(
[0] -> ([cred_id],[date],[value]);
[1] -> ([cred_id],[date],[value]);
[2] -> ([cred_id],[date],[value]);
[3] -> ([cred_id],[date],[value]);
[4] -> ([cred_id],[date],[value]);
[5] -> ([cred_id],[date],[value]);
[6] -> ([cred_id],[date],[value]);
[7] -> ([cred_id],[date],[value]);
[8] -> ([cred_id],[date],[value]);
);
等等。不同数组项的Cred_id可以相同。所以我想把这个数组变成这样:
array(
[cred_id]->(([date],[value]),([date],[value]),([date],[value]))
[cred_id]->(([date],[value]),([date],[value]))
);
foreach ($creds as $cred){
$new_creds[$cred['cred_id']][]= array($cred[date],$cred[value]);
}
这样,如果我知道一个[cred_id]值,我就可以在从数据库中提取的所有日期-值对之间进行foreach循环
是否有一个智能php函数可供我使用,或者我是否必须使用这样的foreach:
array(
[cred_id]->(([date],[value]),([date],[value]),([date],[value]))
[cred_id]->(([date],[value]),([date],[value]))
);
foreach ($creds as $cred){
$new_creds[$cred['cred_id']][]= array($cred[date],$cred[value]);
}
这实际上是我关于如何获得这个结果的最聪明的想法 除了使用循环外,您还可以使用以下功能
虽然您可能会使用一些智能映射功能,但这看起来不错。请注意,您确实需要
$new\u creds[$cred[cred\u id]][]=…
。是的,您是对的!!谢谢你的提示!也许吧。请引用您的数组键名:$cred['cred\u id']
。否则它们将被假定为常量。@MarkusAO是的,这是一个打字错误。将更新问题OP的代码工作正常,您只是让它复杂化了。@AkshayHegde foreach在性能方面比array_map或array_walk更好,在这种情况下,速度很重要,因为query@LelioFaieta:这是真的,但由于您要求一些智能php函数,我展示了这些