使用 PHP 查找下一个数组行
Finding the next array row with PHP
我正在编写基于当前值查找下一个数组值的代码,但结果仍然始终返回 1。
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Spence';
$keys = array_keys($users_emails);
$ordinal = (array_search($current,$keys)+1);
$next = $keys[$ordinal];
echo $next;
怎么了?
$keys
是 keys
,而不是 value
。使用带有 $ordinal
的数组。
$next = $users_emails[$ordinal];
array_keys
为您提供了 key
的数组。 array_search
也使用普通数组。这是您当前正在为 $keys
.
构建的内容的视图
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
)
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Marc';
$ordinal = (array_search($current, $users_emails)+1);
$next = !empty($users_emails[$ordinal]) ? $users_emails[$ordinal] : FALSE;
echo $next;
您正在搜索错误的数组以开始并回显错误的数组。
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Spence';
$ordinal = (array_search($current,$users_emails)+1);
$next = $users_emails[$ordinal];
echo $next;
查看我的代码,我在带有名称的数组中搜索 Spence,它 returns 一个键号。
此密钥编号应在用户电子邮件中而不是密钥中回显。
如果你需要它与关联数组一起工作,你需要这样做:
$users_emails = array('a' => 'Spence', 'b' => 'Matt', 'c' => 'Marc', 'd' => 'Adam', 'e' => 'Paul');
$keys = array_values(array_keys($users_emails));
$current = 'Matt';
$next = ""; // set to not get notice if end of array
$ordinal = array_search($current,$users_emails);
$nextkey = (array_search($ordinal, $keys)+1);
If(!isset($keys[$nextkey])){
// what to do if your at the end of array
// $nextkey = 0;
// Echo "message";
// Or whatever you want
}else{
$next = $users_emails[$keys[$nextkey]];
}
echo $next;
我在键上使用 array_values 来获得一个索引数组,该数组接受 +1
以查找数组中的下一个键。
我的意思是:
<?php
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Spence'; $ordinal = array_search($current, $user_emails)+1;
$next = $user_emails[$ordinal];
echo $next;
?>
根据您的操作,您可能需要使用 next()
:
<?php
$user_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = current($user_emails); $next = next($user_emails); reset($user_emails);
echo $next;
?>
只用这个:
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Spence';
$ordinal = array_search($current,$users_emails) + 1;
$next = $users_emails[$ordinal];
echo $next;
我已经检查了你的代码。在您的代码中,array_keys
函数 returns $users_email
的索引为:
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 )
现在您正在索引数组中搜索 $current = 'Spence';
。这就是为什么 returns 1
.
您希望搜索字符串的下一个值应为:
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Spence';
//$keys = array_keys($users_emails);//print_r($keys);
$ordinal = (array_search($current,$users_emails)+1);
$next = $users_emails[$ordinal];
echo $next;
输出:
Matt
我正在编写基于当前值查找下一个数组值的代码,但结果仍然始终返回 1。
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Spence';
$keys = array_keys($users_emails);
$ordinal = (array_search($current,$keys)+1);
$next = $keys[$ordinal];
echo $next;
怎么了?
$keys
是 keys
,而不是 value
。使用带有 $ordinal
的数组。
$next = $users_emails[$ordinal];
array_keys
为您提供了 key
的数组。 array_search
也使用普通数组。这是您当前正在为 $keys
.
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
)
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Marc';
$ordinal = (array_search($current, $users_emails)+1);
$next = !empty($users_emails[$ordinal]) ? $users_emails[$ordinal] : FALSE;
echo $next;
您正在搜索错误的数组以开始并回显错误的数组。
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Spence';
$ordinal = (array_search($current,$users_emails)+1);
$next = $users_emails[$ordinal];
echo $next;
查看我的代码,我在带有名称的数组中搜索 Spence,它 returns 一个键号。
此密钥编号应在用户电子邮件中而不是密钥中回显。
如果你需要它与关联数组一起工作,你需要这样做:
$users_emails = array('a' => 'Spence', 'b' => 'Matt', 'c' => 'Marc', 'd' => 'Adam', 'e' => 'Paul');
$keys = array_values(array_keys($users_emails));
$current = 'Matt';
$next = ""; // set to not get notice if end of array
$ordinal = array_search($current,$users_emails);
$nextkey = (array_search($ordinal, $keys)+1);
If(!isset($keys[$nextkey])){
// what to do if your at the end of array
// $nextkey = 0;
// Echo "message";
// Or whatever you want
}else{
$next = $users_emails[$keys[$nextkey]];
}
echo $next;
我在键上使用 array_values 来获得一个索引数组,该数组接受 +1
以查找数组中的下一个键。
我的意思是:
<?php
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Spence'; $ordinal = array_search($current, $user_emails)+1;
$next = $user_emails[$ordinal];
echo $next;
?>
根据您的操作,您可能需要使用 next()
:
<?php
$user_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = current($user_emails); $next = next($user_emails); reset($user_emails);
echo $next;
?>
只用这个:
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Spence';
$ordinal = array_search($current,$users_emails) + 1;
$next = $users_emails[$ordinal];
echo $next;
我已经检查了你的代码。在您的代码中,array_keys
函数 returns $users_email
的索引为:
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 )
现在您正在索引数组中搜索 $current = 'Spence';
。这就是为什么 returns 1
.
您希望搜索字符串的下一个值应为:
$users_emails = array('Spence', 'Matt', 'Marc', 'Adam', 'Paul');
$current = 'Spence';
//$keys = array_keys($users_emails);//print_r($keys);
$ordinal = (array_search($current,$users_emails)+1);
$next = $users_emails[$ordinal];
echo $next;
输出:
Matt