問個二位元組操作問題

來源:互聯網
上載者:User
$aa=array("id"=>"1","time"=>"5","neirong"=>"www");
$aa=array("id"=>"2","time"=>"55","neirong"=>"www");
$aa=array("id"=>"4","time"=>"555","neirong"=>"www");
$aa=array("id"=>"5","time"=>"555","neirong"=>"www");
$aaa=array("duibi"=>$aa);

$bb=array("id"=>"1","time"=>"5");
$bb=array("id"=>"2","time"=>"50");
$bb=array("id"=>"3","time"=>"555");
$bbb=array("duibi"=>$bb);

$aaa和$bbb對比操作
變成
$cc=array("id"=>"2","time"=>"55","neirong"=>"www");
$cc=array("id"=>"3","neirong"=>"delete");
$cc=array("id"=>"4","time"=>"555","neirong"=>"www");
$cc=array("id"=>"5","time"=>"555","neirong"=>"www");

怎麼寫



先說明下

$aa=array("id"=>"1","time"=>"5","neirong"=>"www");這個資料之所已沒有是因為 $aa和$bb時間是一樣的

$aa=array("id"=>"2","time"=>"55","neirong"=>"www");
$bb=array("id"=>"2","time"=>"50");
那是因為bbdetime比aa得time小所以。。

$cc=array("id"=>"3","neirong"=>"delete");對應的$aa不存在所以。。


$cc=array("id"=>"4","time"=>"555","neirong"=>"www");
$cc=array("id"=>"5","time"=>"555","neirong"=>"www");

因為$bb沒有對應的id 4和5的資料。。所以





回複討論(解決方案)

太基礎了,回去重練...

太基礎了,回去重練...

有本事你寫個?

多維陣列拼字起來確實費點時間,試著寫了一個,不知道是不是樓主所要的結果
array (size=4)
0 =>
array (size=3)
'id' => string '3' (length=1)
'time' => string '555' (length=3)
'neirong' => string 'delete' (length=6)
1 =>
array (size=3)
'id' => string '2' (length=1)
'time' => string '55' (length=2)
'neirong' => string 'www' (length=3)
2 =>
array (size=3)
'id' => string '4' (length=1)
'time' => string '555' (length=3)
'neirong' => string 'www' (length=3)
3 =>
array (size=3)
'id' => string '5' (length=1)
'time' => string '555' (length=3)
'neirong' => string 'www' (length=3)

。。。。。。。。。。

$aa=array(0=>array("id"=>"1","time"=>"5","neirong"=>"www"),1=>array("id"=>"2","time"=>"55","neirong"=>"www"),2=>array("id"=>"4","time"=>"555","neirong"=>"www"),3=>array("id"=>"5","time"=>"555","neirong"=>"www"));$bb=array(0=>array("id"=>"1","time"=>"5"),1=>array("id"=>"2","time"=>"50"),2=>array("id"=>"3","time"=>"555"));$cc=array();for($i=0;$i$id,"neirong"=>"delete");}for($i=0;$i$bb[$j]['time']){                $cc[]=$aa[$i];                array_splice($aa,$i,1);            }        }    }}$cc=array_merge($cc,$aa);print_r($cc);


Array(    [0] => Array        (            [id] => 3            [neirong] => delete        )    [1] => Array        (            [id] => 2            [time] => 55            [neirong] => www        )    [2] => Array        (            [id] => 4            [time] => 555            [neirong] => www        )    [3] => Array        (            [id] => 5            [time] => 555            [neirong] => www        ))

$aa = array(  array("id"=>"1","time"=>"5","neirong"=>"www"),  array("id"=>"2","time"=>"55","neirong"=>"www"),  array("id"=>"4","time"=>"555","neirong"=>"www"),  array("id"=>"5","time"=>"555","neirong"=>"www"),);$bb = array(  array("id"=>"1","time"=>"5"),  array("id"=>"2","time"=>"50"),  array("id"=>"3","time"=>"555"),);foreach($aa as $v) $r[$v['id']] = $v;foreach($bb as $v) {  $k = $v['id'];  if(! isset($r[$k])) $r[$k] = $v;  elseif($r[$k]['time'] < $v['time']) $r[$k] = $v;  elseif($r[$k]['time'] == $v['time']) unset($r[$k]);}ksort($r);print_r($r);
Array(    [2] => Array        (            [id] => 2            [time] => 55            [neirong] => www        )    [3] => Array        (            [id] => 3            [time] => 555        )    [4] => Array        (            [id] => 4            [time] => 555            [neirong] => www        )    [5] => Array        (            [id] => 5            [time] => 555            [neirong] => www        ))

$aa = array(  array("id"=>"1","time"=>"5","neirong"=>"www"),  array("id"=>"2","time"=>"55","neirong"=>"www"),  array("id"=>"4","time"=>"555","neirong"=>"www"),  array("id"=>"5","time"=>"555","neirong"=>"www"),);$bb = array(  array("id"=>"1","time"=>"5"),  array("id"=>"2","time"=>"50"),  array("id"=>"3","time"=>"555"),);foreach($aa as $v) $r[$v['id']] = $v;foreach($bb as $v) {  $k = $v['id'];  if(! isset($r[$k])) $r[$k] = $v;  elseif($r[$k]['time'] < $v['time']) $r[$k] = $v;  elseif($r[$k]['time'] == $v['time']) unset($r[$k]);}ksort($r);print_r($r);
Array(    [2] => Array        (            [id] => 2            [time] => 55            [neirong] => www        )    [3] => Array        (            [id] => 3            [time] => 555        )    [4] => Array        (            [id] => 4            [time] => 555            [neirong] => www        )    [5] => Array        (            [id] => 5            [time] => 555            [neirong] => www        ))



[3] => Array
(
[id] => 3
[time] => 555
)
不對哈 沒delete

[id] => 3
[neirong] => delete

你原始的資料只有 $bb=array("id"=>"3","time"=>"555");
我不能憑空臆造出 "neirong"=>"delete"
但你可以,因為規則是你制定的
你自己加上就是了

"1","time"=>"5","neirong"=>"www");$aa[1]=array("id"=>"2","time"=>"55","neirong"=>"www");$aa[2]=array("id"=>"4","time"=>"555","neirong"=>"www");$aa[3]=array("id"=>"5","time"=>"555","neirong"=>"www");$bb[0]=array("id"=>"1","time"=>"5");$bb[1]=array("id"=>"2","time"=>"50");$bb[2]=array("id"=>"3","time"=>"555");$c = array();$d = array();$e = array();$j = array();foreach($bb as $v){  $e[] = $v['id'];}foreach($aa as $v){  $d[] = $v['id'];}$s = array_diff_assoc($e, $d);$f = array_diff_assoc($d, $e);$g = array_merge($s,$f);foreach($aa as $k=>$v){  foreach($bb as $k1=>$v1){    if($v['id']==$v1['id'] && $v1['time']>$v['time']){      $c[] = array('id'=>$v1['id'],'time'=>$v1['time'],'neirong'=>'delete');    }elseif($v['id']==$v1['id'] && $v1['time']<$v['time']){      $c[] = array('id'=>$v['id'],'time'=>$v['time'],'neirong'=>$v['neirong']);    }    foreach($g as $v2){      if($v['id'] == $v2 && !in_array($v['id'], $j)){        $c[] = array('id'=>$v['id'],'time'=>$v['time'],'neirong'=>$v['neirong']);        $j[] = $v['id'];      }      if($v1['id'] == $v2  && !in_array($v1['id'], $j)){        $c[] = array('id'=>$v1['id'],'time'=>$v1['time'],'neirong'=>'delete');        $j[] = $v1['id'];      }    }  }}var_dump($c);?>

我這個太麻煩了,自己可以改改,不太擅長簡化代碼

你原始的資料只有 $bb=array("id"=>"3","time"=>"555");
我不能憑空臆造出 "neirong"=>"delete"
但你可以,因為規則是你制定的
你自己加上就是了

哈哈我剛加上了

我這個太麻煩了,自己可以改改,不太擅長簡化代碼

剛看版主的代碼是最好的 直接遍曆$aa跟$bb對比修改

"1","time"=>"5","neirong"=>"www"),  array("id"=>"2","time"=>"55","neirong"=>"www"),  array("id"=>"4","time"=>"555","neirong"=>"www"),  array("id"=>"5","time"=>"555","neirong"=>"www"),); $bb = array(  array("id"=>"1","time"=>"5"),  array("id"=>"2","time"=>"50"),  array("id"=>"3","time"=>"555"),); foreach($aa as $v) $r[$v['id']] = $v;foreach($bb as $v) {  $k = $v['id'];  if(! isset($r[$k]))  {    $v['content']='delete';    $r[$k] = $v;  }   elseif($r[$k]['time'] < $v['time']) $r[$k] = $v;  elseif($r[$k]['time'] == $v['time']) unset($r[$k]);}ksort($r);print_r($r);?>s
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.