ホームページ >バックエンド開発 >PHPチュートリアル >2 桁の配列演算について質問します。
$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","時間"=>"50");
$bb=array("id"=>"3","時間"=>"555");
$bb= array("duibi"=>$bb);
$aaa と $bbb の比較演算
$cc=array("id"=>"2","time"=>"55", "ネイロン"=>"www");
$cc=array("id"=>"3","ネイロン"=>"削除");
$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 が より長いためです。ああ、時間が少ないので。 。
$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 に対応するデータがないためです。 。それでは
ディスカッションへの返信(解決策)
基本すぎるので、戻ってもう一度練習してください...
Do you書く能力はありますか?
多次元配列を記述するには時間がかかりますが、投稿者が望んでいる結果かどうかはわかりません。 array (size=4)
array (サイズ=3)
'id' => 文字列 '3' (長さ=1)
'時間' => 文字列 '555' (長さ=3)
'neirong' => 文字列 '削除' (長さ= 6)
1 =>
配列 ( size=3)
'id' => 文字列 '2' (length=1)
'time' => 'neirong' => 文字列 'www' (長さ = 3)
2 => 配列 (サイズ = 3)
'id' => 文字列 '4' (長さ = 1)
'時間' => ' (長さ=3)
'neirong' => 文字列 'www' (長さ=3)
3 => 配列 (サイズ=3)
'id' => 文字列 '5' (長さ=1)
'time' => 文字列 '555 ' (長さ=3)
'neirong' => 文字列 'www' (長さ=3)
。 。 。 。 。 。 。 。 。 。
れーれー
れーれー
れーれー
れーれー
[3] => Array
(
[id] => 3
[time] => 555
)
不对哈 没delete
[id] => 3
[neirong] => delete
你原始的数据只有 $bb=array("id"=>"3","time"=>"555");
我不能凭空臆造出 "neirong"=>"delete"
但你可以,因为规则是你制定的
你自己加上就是了
<?php$aa[0]=array("id"=>"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对比修改<?php$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])) { $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