所以我想编写一个方法,将所有的数组与一个特定的键值,但我遇到的问题是,当我尝试和取消设置数组,以便没有重复的结果跳过在几件事情上,这让我感到困惑。所以关于如何改进这种方法的任何建议将不胜感激。另一个问题,我有..有办法来检查是否每个这些数组都有我正在寻找的所有4个键。如何系统地合并数组而不丢失数据?
“发布日期” => “电子表格和传单月” => “广告在每月更新” => “的目录功能” =>
所以我在做什么是合并阵列,在数据库中的相同的ID,所以我不必做一些非常讨厌的SQL查询,但我想知道是否有办法确保所有这些键中的4个将在每个结果中...如果有是与一个或多个相关的值..我的方法会将值添加到其键,如果没有与该键关联的值,它将只是一个空字符串。
protected function array_with_same_val($array, $key) {
for($i = 0; $i < count($array); $i++) {
for($j = 1; $j < count($array); $j++) {
if(isset($array[$j]) && isset($array[$i]) && $array[$i][$key]==$array[$j][$key]) {
$temp = array_merge($array[$i], $array[$j]);
$array[$i] = $temp;
//unset($array[$j]);
}
}
}
return $array;
}
这里是我的阵列的样品(会有很多更多的价值,这是只给一个想法):
'0' => array
(
'Release Date' => 'September 1, 2013',
'cp_id' => '112960'
),
'1' => array
(
'Spreadsheet and Flyer Month' => 'September 1, 2013',
'cp_id' => '112960'
),
'2' => array
(
'Advertise in Monthly Update' => 'September 1, 2013',
'cp_id' => '112960'
),
'3' => array
(
'Release Date' => 'September 1, 2013',
'cp_id' => '109141'
),
);
任何帮助,在此将不胜感激。
是否只有一个数组?你能否提供你的阵列样本? – SomeSillyName 2013-03-11 18:56:50
刚刚添加了一个示例 – 2013-03-11 19:03:08
_“如果输入数组具有相同的字符串键,则该键的后面的值将覆盖前一个键,但是,如果数组包含数字键,则后面的值不会覆盖原始值,但会被追加。“_ – Wrikken 2013-03-11 19:04:28