我在php中有一个类似下面的数组
Array
(
[0] => Array
(
[0] => 40173
[1] => 514081
[2] => 363885
[3] => 891382
),
[1] => Array
(
[0] => 40173
[1] => 5181
[2] => 385
[3] => 891382
)
)
现在我要删除父索引0,1 ...并最终想要获取所有值(仅限唯一值)。
感谢。
答案 0 :(得分:4)
一种可能的方法是使用call_user_func_array('array_merge', $arr)惯用法展平数组,然后使用array_unique()提取唯一值:
$new_arr = array_unique(
call_user_func_array('array_merge', $old_arr));
Demo。显然,它可以处理任何长度的数组。
答案 1 :(得分:3)
$startArray = Array
(
[0] => Array
(
[0] => 40173
[1] => 514081
[2] => 363885
[3] => 891382
),
[1] => Array
(
[0] => 40173
[1] => 5181
[2] => 385
[3] => 891382
)
);
//Edited to handle more the 2 subarrays
$finalArray = array();
foreach($startArray as $tmpArray){
$finalArray = array_merge($finalArray, $tmpArray);
}
$finalArray = array_unique($finalArray);
答案 2 :(得分:1)
$objarr = new RecursiveIteratorIterator(new RecursiveArrayIterator($yourarray));
foreach($objarr as $v) {
$new_arr[]=$v;
}
print_r(array_unique($new_arr));
<强> OUTPUT:
强>
Array
(
[0] => 40173
[1] => 514081
[2] => 363885
[3] => 891382
[5] => 5181
[6] => 385
)
答案 3 :(得分:0)
$new_array = array_merge($array1, $array2);
$show_unique = array_unique($new_array);
print_r($show_unique);
array_merge
正在合并数组,array_unique
会删除任何重复的值。
答案 4 :(得分:-1)
尝试这样的事情:
$new_array = array();
foreach($big_array as $sub_array) {
array_merge($new_array, $sub_array);
}
$new_array = array_unique($new_array);
(代码未测试,这只是一个概念)
答案 5 :(得分:-1)
试试这个:
$Arr = array(array(40173, 514081, 363885, 891382),
array(40173,5181, 385,891382));
$newArr = array();
foreach($Arr as $val1)
{
foreach($val1 as $val2)
{
array_push($newArr, $val2);
}
}
echo '<pre>';
print_r(array_unique($newArr));
输出:
Array
(
[0] => 40173
[1] => 514081
[2] => 363885
[3] => 891382
[5] => 5181
[6] => 385
)
- 感谢