Php 检查数组中的索引是否不同

Php 检查数组中的索引是否不同,php,arrays,Php,Arrays,我试图比较一个数组中的索引,如果所有索引都不相同,那么应该显示错误。如果它们相同,则取一个值作为字符串 array(4) { [0]=> string(2) "19" [1]=> string(2) "19" [2]=> string(2) "19" [3]=> string(2) "19" } 首先我从数据库中检索数据 $idNaloga = array(); while($r=$ss->fetch()){ $idNal

我试图比较一个数组中的索引,如果所有索引都不相同,那么应该显示错误。如果它们相同,则取一个值作为字符串

array(4) {
  [0]=>
  string(2) "19"
  [1]=>
  string(2) "19"
  [2]=>
  string(2) "19"
  [3]=>
  string(2) "19"
}
首先我从数据库中检索数据

$idNaloga = array();

 while($r=$ss->fetch()){
   $idNaloga[] = $r['idNaloga'];
 }
如果我收到这样的数组,它应该显示错误,因为

array(3) {
  [0]=>
  string(2) "19"
  [1]=>
  string(2) "19"
  [2]=>
  string(2) "72"
}
若结果为,则应将19作为字符串

array(4) {
  [0]=>
  string(2) "19"
  [1]=>
  string(2) "19"
  [2]=>
  string(2) "19"
  [3]=>
  string(2) "19"
}

我试图使用array_unique()函数,但无法得到正确的结果。我在谷歌上搜索,但找不到它。

是的,
array\u unique
应该可以工作。数一数结果。如果有多个条目,则显示错误

if (count(array_unique($your_array)) > 1) {
    echo  'error: multiple values';
};

是的,
array\u unique
应该可以工作。数一数结果。如果有多个条目,则显示错误

if (count(array_unique($your_array)) > 1) {
    echo  'error: multiple values';
};

您可以使用array_unique执行此操作

if (count(array_unique($idNaloga)) > 1) {
     //return error
} else {
    echo $idNaloga[0];
}

您可以使用array_unique执行此操作

if (count(array_unique($idNaloga)) > 1) {
     //return error
} else {
    echo $idNaloga[0];
}

假设我正确解释了数组,您可以创建一个函数,该函数只计算唯一值的数量,并返回唯一值或错误

$a = array( 0 => "19", 1 => "19", 2 => "72" );

$b = array(0 => "19", 1 => "19",2 => "19", 3 => "19");

function checkUniqueValues($arr) {
    $vars = array_unique($arr);
    if (count($vars) > 1) {
         echo "error!";   
    } else {
         // use a return if you want
         echo $vars[0];
    }
}

checkUniqueValues($a);
echo "<br />";
checkUniqueValues($b);
$a=array(0=>“19”,1=>“19”,2=>“72”);
$b=数组(0=>“19”,1=>“19”,2=>“19”,3=>“19”);
函数checkUniqueValues($arr){
$vars=数组\唯一($arr);
如果(计数($VAR)>1){
回声“错误!”;
}否则{
//如果需要,请使用退货
echo$vars[0];
}
}
校验唯一值($a);
回声“
”; 支票唯一价值(b美元);
假设我正确解释了数组,您可以创建一个函数,该函数只计算唯一值的数量,并返回错误或唯一值

$a = array( 0 => "19", 1 => "19", 2 => "72" );

$b = array(0 => "19", 1 => "19",2 => "19", 3 => "19");

function checkUniqueValues($arr) {
    $vars = array_unique($arr);
    if (count($vars) > 1) {
         echo "error!";   
    } else {
         // use a return if you want
         echo $vars[0];
    }
}

checkUniqueValues($a);
echo "<br />";
checkUniqueValues($b);
$a=array(0=>“19”,1=>“19”,2=>“72”);
$b=数组(0=>“19”,1=>“19”,2=>“19”,3=>“19”);
函数checkUniqueValues($arr){
$vars=数组\唯一($arr);
如果(计数($VAR)>1){
回声“错误!”;
}否则{
//如果需要,请使用退货
echo$vars[0];
}
}
校验唯一值($a);
回声“
”; 支票唯一价值(b美元);
以下是在php fiddle网站上测试的不同案例。您可以选择符合您需求的代码

<?php

$a = ["19", "19", "19" ];

$b = ["19", "19", "19" ];

$c = ["19", "19", "19", "19"];

$d = ["19","19", "72"];
//method 1
if($a == $b){
    echo "Array a and b are equal";
    echo "<br>";
}else{
     echo "Array a and b are not equal";
    echo "<br>";
}

if($a == $c){
    echo "Array a and c are equal";
    echo "<br>";
}else{
     echo "Array a and c are not equal";
    echo "<br>";
}

if($a == $d){
    echo "Array a and d are equal";
    echo "<br>";
}else{
     echo "Array a and d are not equal";
    echo "<br>";
}

//method 2
array_multisort($a);
    array_multisort($b);
array_multisort($c);
    array_multisort($d);
if(serialize($a) === serialize($b)){
    echo "key matches with values for b";
     echo "<br>";
}
else{
 echo "key doesnt matches with values for b";
     echo "<br>";
}
if(serialize($a) === serialize($c)){
    echo "key matches with values  for c";
     echo "<br>";
}
else{
 echo "key doesnt matches with values for c";
     echo "<br>";
}
if(serialize($a) === serialize($d)){
    echo "key matches with values  for d";
     echo "<br>";
}
else{
 echo "key doesnt matches with values for d";
     echo "<br>";
}


//method 3 (if count doesnt match)
echo "<br>";
$max_count_between_a_and_c = count($a)>count($c)?count($a):count($c);

$error = false;
for($i = 0; $i < $max_count_between_a_and_c; $i++){
    if(isset($a[$i]) && isset($c[$i]) && $a[$i] != $c[$i]) 
        $error =  true;
}
if($error)
       echo "array a and array c are not equal";
else
       echo "array a and array c are equal";

echo "<br>";

$max_count_between_a_and_d = count($a)>count($d)?count($a):count($d);
$error = false;
for($i = 0; $i < $max_count_between_a_and_d; $i++){
    if(isset($a[$i]) && isset($d[$i]) && $a[$i] != $d[$i])
        $error =  true;
}
if($error)
       echo "array a and array d are not equal";
else
       echo "array a and array d are equal";





?>

下面是在php fiddle网站上测试的不同案例。您可以选择符合您需求的代码

<?php

$a = ["19", "19", "19" ];

$b = ["19", "19", "19" ];

$c = ["19", "19", "19", "19"];

$d = ["19","19", "72"];
//method 1
if($a == $b){
    echo "Array a and b are equal";
    echo "<br>";
}else{
     echo "Array a and b are not equal";
    echo "<br>";
}

if($a == $c){
    echo "Array a and c are equal";
    echo "<br>";
}else{
     echo "Array a and c are not equal";
    echo "<br>";
}

if($a == $d){
    echo "Array a and d are equal";
    echo "<br>";
}else{
     echo "Array a and d are not equal";
    echo "<br>";
}

//method 2
array_multisort($a);
    array_multisort($b);
array_multisort($c);
    array_multisort($d);
if(serialize($a) === serialize($b)){
    echo "key matches with values for b";
     echo "<br>";
}
else{
 echo "key doesnt matches with values for b";
     echo "<br>";
}
if(serialize($a) === serialize($c)){
    echo "key matches with values  for c";
     echo "<br>";
}
else{
 echo "key doesnt matches with values for c";
     echo "<br>";
}
if(serialize($a) === serialize($d)){
    echo "key matches with values  for d";
     echo "<br>";
}
else{
 echo "key doesnt matches with values for d";
     echo "<br>";
}


//method 3 (if count doesnt match)
echo "<br>";
$max_count_between_a_and_c = count($a)>count($c)?count($a):count($c);

$error = false;
for($i = 0; $i < $max_count_between_a_and_c; $i++){
    if(isset($a[$i]) && isset($c[$i]) && $a[$i] != $c[$i]) 
        $error =  true;
}
if($error)
       echo "array a and array c are not equal";
else
       echo "array a and array c are equal";

echo "<br>";

$max_count_between_a_and_d = count($a)>count($d)?count($a):count($d);
$error = false;
for($i = 0; $i < $max_count_between_a_and_d; $i++){
    if(isset($a[$i]) && isset($d[$i]) && $a[$i] != $d[$i])
        $error =  true;
}
if($error)
       echo "array a and array d are not equal";
else
       echo "array a and array d are equal";





?>

------做这件事的方法太多了;你尝试了什么?“我试图使用array_unique()函数,但无法得到正确的结果。我在谷歌上搜索,但找不到它。”-你应该在问题中包含这一点。这并不能解决他的72个问题,需要将其更改为19个问题,因为他需要执行$key=>$val循环使用
array\u unique
-你到底尝试了什么?--做这件事的方法太多了;你尝试了什么?“我试图使用array_unique()函数,但无法得到正确的结果。我在谷歌上搜索,但找不到它。”-你应该在问题中包括这一点。这并不能解决他的72个问题,需要将其更改为19个问题,因为他需要执行$key=>$val循环。你使用
array\u unique
-你到底尝试了什么?是的,如果值是唯一的,应该可以显示该值。我更喜欢
reset($array)
$array[0]
上的
。永远不知道,当你有了一个聪明的想法来实际构造特定的键时,
0
会给你一个索引错误;o/谢谢。正确是的,如果值是唯一的,那么应该可以显示它。我更喜欢
reset($array)
而不是
$array[0]
。永远不知道,当你有了一个聪明的想法来实际构造特定的键时,
0
会给你一个索引错误;o/谢谢。更正无需定义索引
0=>“19”,1=>“19”…
,因为我写PHP后不久这就没有关联数组了,感谢指针@bubthere无需定义索引
0=>“19”,1=>“19”…
,因为我写PHP后不久这就没有关联数组了,谢谢你的指针@bub