Heim > Fragen und Antworten > Hauptteil
1. Ich habe zum Beispiel eine Reihe von Arrays wie folgt:
Array
(
[0] => Array
(
[gid] => 1
[cid] => pc001
[class] => 办公用品
[name] => 笔记本电脑
[type] => Acer Aspire E1-410G
[unit] => 台
[num] => 1
[price] =>
[amount] =>
[invoice] =>
[bremarks] =>
[bid] =>
)
[1] => Array
(
[gid] => 2
[cid] => pc002
[class] => 办公用品
[name] => 笔记本电脑
[type] => Acer Aspire E5-571G-58WT
[unit] => 台
[num] => 2
[price] =>
[amount] =>
[invoice] =>
[bremarks] =>
[bid] =>
)
[2] => Array
(
[gid] => 4
[cid] => wf123
[class] => 办公用品
[name] => 鼠标
[type] => 罗技M90
[unit] => 个
[num] => 3
[price] =>
[amount] =>
[invoice] =>
[bremarks] =>
[bid] =>
)
[3] => Array
(
[gid] => 6
[cid] => wf012
[class] => 办公用品
[name] => 电脑键盘
[type] => PS接口
[unit] => 个
[num] => 4
[price] =>
[amount] =>
[invoice] =>
[bremarks] =>
[bid] =>
)
)
2. Die Suchbedingungen lauten wie folgt: gid ist gleich dem folgenden Array
Array
(
[0] => 3
[1] => 4
[2] => 5
)
3. Wie erhalte ich die Daten mit gid=3, 4 und 5?
Nur eine der oben genannten Daten sollte die Anforderungen erfüllen, bitte helfen Sie ~
PHP中文网2017-06-05 11:11:37
foreach($arr_1 as $val){
if(in_array($val['gid'],$arr_2)){
$data[] = $val;
}
}
print_r($data);
PHPz2017-06-05 11:11:37
function searchdata($data,$key,$value) {
$result = array();
foreach($data as $dval) {
if(!isset($dval[$key])) {
continue;
}
if(is_array($value)) {
if(in_array($dval[$key], $value)) {
$result[] = $dval;
}
} else {
if(($dval[$key] == $value)) {
$result[] = $dval;
}
}
}
searchdata($data,'gid',array(3,4,5));
漂亮男人2017-06-05 11:11:37
$old = array(
array(
'gid'=> 1,
'name'=> 'xx1'
),
array(
'gid'=> 2,
'name'=> 'xx2'
),
array(
'gid'=> 4,
'name'=> 'xx4'
),
array(
'gid'=> 6,
'name'=> 'xx6'
),
);
$exist_gids = array_flip(array_column($old, 'gid'));
$condition_gids = array(3, 4, 5);
$new = array();
foreach ($condition_gids as $gid) {
if (isset($exist_gids[$gid])) {
$new[] = $old[$exist_gids[$gid]];
}
}
var_dump($new);