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