Reputation: 157
$now = check key
$all = all data
I need check some id is in array $all
$now = array(13,15,18);
$all =
Array(
[0] => Array
(
[lid] => 4
[name] => aaaaa
)
[1] => Array
(
[lid] => 12
[name] => s
)
[2] => Array
(
[lid] => 13
[name] => aaa
)
[3] => Array
(
[lid] => 14
[name] => bbb
)
[4] => Array
(
[lid] => 15
[name] => ccc
)
[5] => Array
(
[lid] => 16
[name] => ddd
)
[6] => Array
(
[lid] => 17
[name] => eee
)
[7] => Array
(
[lid] => 18
[name] => fffff
)
)
$now value is lid, I need use $now to check $all...
$now is 13,15,18
$all there are 8 rows lid : 4,12,13,14,15,17,18
13,15,18 is in array
so I need add a new key and value ext=1.
set to :
Array(
[0] => Array
(
[lid] => 4
[name] => aaaaa
[ext] => 0
)
[1] => Array
(
[lid] => 12
[name] => s
[ext] => 0
)
[2] => Array
(
[lid] => 13
[name] => aaa
[ext] => 1
)
[3] => Array
(
[lid] => 14
[name] => bbb
[ext] => 0
)
[4] => Array
(
[lid] => 15
[name] => ccc
[ext] => 1
)
[5] => Array
(
[lid] => 16
[name] => ddd
[ext] => 0
)
[6] => Array
(
[lid] => 17
[name] => eee
[ext] => 0
)
[7] => Array
(
[lid] => 18
[name] => fffff
[ext] => 1
)
)
Upvotes: 1
Views: 87
Reputation: 302
Here is what you can try:
<?php
$now = array(13,15,18);
$all = array(array('lid'=>4,'name'=>'aaaa'),array('lid'=>12,'name'=>'s'),array('lid'=>13,'name'=>'aaaa'),array('lid'=>14,'name'=>'bbb'),array('lid'=>15,'name'=>'ccc'),array('lid'=>16,'name'=>'ddd'),array('lid'=>17,'name'=>'eeee'),array('lid'=>18,'name'=>'ffff'));
//echo"<pre>";print_r($all);
$i = 0;
foreach($all as $a){
if (in_array($a['lid'], $now))
{
$all[$i]['ext'] = 1;
}
else
{
$all[$i]['ext'] = 0;
}
$i++;
}
echo"<pre>";print_r($all);
?>
Upvotes: 1
Reputation: 1
Try like this
foreach($all AS $key => $a) {
$all1[$key] = $a;
$all1[$key]['ext'] = 0;
if(in_array($a['lid'], $now)) {
$all1[$key]['ext'] = 1;
}
}
print_r($all1);
print_r($all);
Upvotes: 0
Reputation: 490
You will need to do something like below:
$now = array(12,14);
$all = array(
array(
"lid" => 4,
"name" => "aaaaa"
),
array(
"lid" => 12,
"name" => "s"
),
array(
"lid" => 13,
"name" => "aaa"
),
array(
"lid" => 14,
"name" => "bbb"
)
);
$i = 0;
foreach ( $all as $each ) {
if ( in_array($each['lid'],$now) ) {
$all[$i]['ext'] = 1;
} else {
$all[$i]['ext'] = 0;
}
$i++;
}
print_r($all);
Upvotes: 0
Reputation: 42507
You should loop over your $all
array as follows:
foreach ($all as &$item) {
$item['ext'] = (in_array($item['lid'], $now) ? 1 : 0);
}
Upvotes: 1