1. 首页 > 科技

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"));