1
我试图更改数组的值,如果其中一个值为多次进入,并且由null
更改,则重复值首先执行。PHP - 多位数组 - 如果数组中的值相同,则更改除第一个以外的所有值
我有这样的阵列: $阵列=
array (size=6)
0 =>
array (size=3)
'id' => int 1
'data-time-start' => int 0
'data-time-end' => int 5
1 =>
array (size=3)
'id' => int 2
'data-time-start' => int 6
'data-time-end' => int 10
2 =>
array (size=3)
'id' => int 1
'data-time-start' => int 11
'data-time-end' => int 15
3 =>
array (size=3)
'id' => int 3
'data-time-start' => int 16
'data-time-end' => int 20
4 =>
array (size=3)
'id' => int 4
'data-time-start' => int 21
'data-time-end' => int 25
5 =>
array (size=3)
'id' => int 3
'data-time-start' => int 30
'data-time-end' => int 35
6 =>
array (size=3)
'id' => null
'data-time-start' => int 40
'data-time-end' => int 45
7 =>
array (size=3)
'id' => int 3
'data-time-start' => int 45
'data-time-end' => int 60
在这个例子中我有两个次'id' = int 1
和三次'id' = int 3
。我想这样做是为了保持第一ID,但设置其他重复的ID为NULL,并返回一个这样的数组:
array (size=6)
0 =>
array (size=3)
'id' => int 1
'data-time-start' => int 0
'data-time-end' => int 5
1 =>
array (size=3)
'id' => int 2
'data-time-start' => int 6
'data-time-end' => int 10
2 =>
array (size=3)
'id' => null
'data-time-start' => int 11
'data-time-end' => int 15
3 =>
array (size=3)
'id' => int 3
'data-time-start' => int 16
'data-time-end' => int 20
4 =>
array (size=3)
'id' => int 4
'data-time-start' => int 21
'data-time-end' => int 25
5 =>
array (size=3)
'id' => null
'data-time-start' => int 30
'data-time-end' => int 35
6 =>
array (size=3)
'id' => null
'data-time-start' => int 40
'data-time-end' => int 45
7 =>
array (size=3)
'id' => null
'data-time-start' => int 45
'data-time-end' => int 60
试图用这一点,但什么都没有发生......
var_dump(setNulForDuplicatesInArray($array, 'id'))
function setNulForDuplicatesInArray($arr, $keyToFind)
{
$newArr = array();
for ($i = 0; $i < sizeof($arr); $i++) {
if (in_array($arr[$i], $newArr))
$newArr[$i][$keyToFind] = null;
else
$newArr[] = $arr[$i];
}
return $newArr;
}
阵列()是一样的...
谢谢!
好了解释相关,但你的函数返回“空” – Zagloo 2015-04-02 14:52:00
@Zagloo我不知道你是如何使用这一点,但它工作正常的http://codepad.viper- 7.com/nQxABn – Ghost 2015-04-02 14:56:37
哦对不起...我把你的代码放在一个函数中,并返回$ temp而不是$ array ...谢谢所有:)! – Zagloo 2015-04-02 14:59:43