我有一个数组(如下所示)。它具有let emailTextField = UITextField()
let emailValidator = EmailValidator()
emailTextField.rx.text
.orEmpty
.map(emailValidator.validate)
.subscribe(onNext: { isValid in
print(isValid)
})
.disposed(by: disposeBag)
和a
,它们每个内部都有数字。但是,当我使用b
函数时,它将得到end()
的数组。我需要实际的b
字母。要打印,而不是数字数组。我该怎么办?
b
答案 0 :(得分:2)
将end
与array_keys
一起使用:
$array = array("a" => array(1, 2, 3),
"b" => array(4, 5, 6));
$keys = array_keys($array);
$end = end($keys);
print_r($end);
请注意,由于end
会调整数组指针(因此,在没有通知级别错误的情况下,您无法将来自array_keys
的输出直接传递给end
),最好使用简单的方法
echo $keys[count($keys)-1];
答案 1 :(得分:1)
简单
$array = array("a" => array(1, 2, 3),"b" => array(4, 5, 6));
end($array);
echo key($array);
输出
b
对end
的调用将内部数组指针放在数组的末尾,然后key获取当前位置的key
(现在是数组中的最后一项)。
要重置数组指针,只需使用:
reset($array); //moves pointer to the start
您不能一行完成它,因为end返回数组元素end
,而key
需要数组作为参数。有点“怪异”,因为end
移动了内部数组指针,您实际上看不到。
我刚才想到的一种方法是使用一行反向键和数组键:
echo key(array_reverse($array));
基本上,当您执行array_reverse
时,它会翻转顺序并返回反转的数组。然后,我们可以将此数组用作key()
的参数,它获取我们现在向后的数组的(当前)第一个键,或原始数组的最后一个键(双负数)。
输出
b
享受!
答案 2 :(得分:0)
一种简单的方法是遍历数组的键并将键存储在每个索引处。
<?php
$array = array("a" => array(1, 2, 3),
"b" => array(4, 5, 6));
foreach ($array as $key => $value) $end = $key;
// This will overwrite the value until you get to the last index then print it out
print_r($end);