我想在php中比较两个数组。我不想整体做,而是一块一块地进行 有点像这样
if (a[1] == b[1]){ // do something }
if (a[2] == b[2]){ // do more }
如果没有一大堆ifs
我怎么能这样做呢?
提前感谢:)
$a = array(1, 2, 3, 5);
$b = array(1, 1, 1, 1);
$c = array('something', 'something', 'and so forth');
foreach($a as $key => $value){
if($value == $b[$key]){
echo $c[$key]. '<br />';
}
}
我的回答。比较2个数组,然后编辑一些代码。由匹配
的块触发答案 0 :(得分:1)
想要逐个比较整个数组元素(假设两个数组长度相同)
foreach($a as $key => $value){
if($value == $b[$key])
{
// do something
}
else
{
break; // stop doing something and break
}
}
如果想要比较某些键
$keys = array('key1', 'key2');
foreach($keys as $value){
if($a[$value] == $b[$value])
{
// true
}
else
{
// false
}
}
答案 1 :(得分:1)
for($i=0;$i<sizeof(a);$i++){
if(a[$i]==b[$i]){
//DO SOMETHING
}
}
答案 2 :(得分:0)
$a = array(1, 3 , 5 ,6 , 7);
$b = array(3, 1, 5, 6, 8 ,9);
$array_size = min(count($a), count($b));
for ($i = 0; $i < $array_size; $i++) {
if ($a[$i] == $b[$i]) { //you could/should check whether the index is present.
//some code
}
}
这仅适用于具有相同均匀分布的数字索引的数组。
答案 3 :(得分:0)
foreach(array_intersect_assoc($a,$b) as $key => $data)){
switch($key){
case 1:
//something
break;
case 2:
//something
break;
}
}
答案 4 :(得分:0)
for ($i=0; $i < count($a) && $i < count($b); ++$i) {
if ($a[$i] == $b[$i]){
// this is true
} else {
// this is false
}
}
答案 5 :(得分:0)
循环好的ol应该可以解决问题。您可以从一系列事情开始:
$arrayOfThingsToDo = array( "someFunc", "anotherFunc", "yetAnotherFunc" );
$arrayOfA = array( "one", "two", "three" );
$arrayOfB = array( "one", "not two", "three" );
function doCompare($a, $b, $f) {
$len = count($a);
for($i = 0; $i < $len; $i++) {
if($a[$i] == $b[$i]) {
$f[$i]();
}
}
}
祝你好运!