如何根据当前值查找数组的下一个值

时间:2019-06-17 12:43:51

标签: php arrays

我的数组如下-

Array
(
   [1] => admin
   [5d1acff7-51f5-d10a-8807-5ce3a25f3f01] => atul
   [9324e078-e651-09ab-856c-5d00cf1d6302] => tushar
   [3e4d9711-e4e0-f9de-8d40-5d021f3137fb] => praful
   [b283b589-c527-389f-498b-5cf0ea2338e1] => suraj

)

在这里我无法根据键找到下一个值,因此我想根据当前值来找到下一个值。 假设我现在的值是'atul',现在我想用键将下一个值设为'tushar'。

1 个答案:

答案 0 :(得分:1)

获取搜索字符串的偏移量,对其进行递增,然后从隔离的元素中访问键和值。

检查false的{​​{1}}布尔结果非常关键。否则,递增array_search()会变成false,那么您的脚本不正确。

代码:(Demo)(or var_export the element

1

输出:

$array = [
   1 => 'admin',
   '5d1acff7-51f5-d10a-8807-5ce3a25f3f01' => 'atul',
   '9324e078-e651-09ab-856c-5d00cf1d6302' => 'tushar',
   '3e4d9711-e4e0-f9de-8d40-5d021f3137fb' => 'praful',
   'b283b589-c527-389f-498b-5cf0ea2338e1' => 'suraj'
];

$values = array_values($array);
$offset = array_search('atul', $values);

if ($offset !== false && isset($values[++$offset])) {
    $element = array_slice($array, $offset, 1, true);
    echo key($element) , " : " , current($element);
} else {
    echo "not found or no next";
}