php 已知两个数组,根据第一个数组值筛选第二个数组值,组成新的一维数组?(php-定义两个数组,首先将第一个数组中的元素复制到第二个数组中。然后将第二个数组从
- php-定义两个数组,首先将第一个数组中的元素复制到第二个数组中。然后将第二个数组从大
- php 一个多维数组根据一维数组筛选数据,得到新数组
- PHP将二维数组中某个值都取出来组成一个新的数组
- php 两个二维数组比较,从第一个二维数组中,将第二个二维数组不同项挑选出来,最终合并成为一个新的数组
php-定义两个数组,首先将第一个数组中的元素复制到第二个数组中。然后将第二个数组从大
foreach($arr as $key => $value)
{
$v[] = $value;
}
$arr数据循环复制到 $v
数组排序:
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
var_dump($a);
?>
结果:
array
0 => int 1
1 => int 2
2 => int 3
3 => int 5
4 => int 6
php 一个多维数组根据一维数组筛选数据,得到新数组
// 定义数组 1
$arr1 = array(
'BL001' => array(
'0' => 'A14257',
'1' => 'B17548'
),
'CDF002' => array(
'0' => 'A14257',
'1' => 'C48751'
),
'FGE453' => array(
'0' => 'DF5533',
'1' => 'GR6445',
'2' => 'GH5544'
),
'GEN001' => array(
'0' => 'NT7532',
'1' => 'DE9342',
'2' => 'C48751'
)
);
// 定义数组 2
$arr2 = array(
'A14257',
'E453T4',
'Y64344',
'FG4809',
'C48751',
'H4443R'
);
// 定义结果数组 $result
$result = array();
foreach ( $arr1 as $k => $v ) // 遍历数组 1
foreach ( $v as $s ) // 遍历数组 1 第 2 维
if ( in_array( $s, $arr2 ) ) { // 包含数据 2 的任意值
if ( ! isset( $result[$k] ) || ! is_array( $result[$k] ) )
$result[$k] = array();
$result[$k][] = $s; // 添加到结果数组
}
// 输出测试结果
print_r( $result );
/*
Array
(
[BL001] => Array
(
[0] => A14257
)
[CDF002] => Array
(
[0] => A14257
[1] => C48751
)
[GEN001] => Array
(
[0] => C48751
)
)
*/
PHP将二维数组中某个值都取出来组成一个新的数组
foreach(explode(",",$a) as $value){
$ids[] = array_shift(explode("-",$value));
}
array_shift()函数及explode()函数用法可以参照:http://www.hi-docs/php/explode.html
php 两个二维数组比较,从第一个二维数组中,将第二个二维数组不同项挑选出来,最终合并成为一个新的数组
方法是使用array_udiff函数。代码如下:
function diff_arr($a, $b){
return $a["id"] > $b["id"] ? 1 : ($a["id"] < $b["id"] ? -1 : 0);
}
print_r(array_udiff($arr0, $arr1, "diff_arr"));