gpt4 book ai didi

php - 确定数组是否关联(散列)

转载 作者:行者123 更新时间:2023-12-03 01:56:44 24 4
gpt4 key购买 nike

我希望能够将数组传递给函数,并使该函数根据它是“列表”样式数组还是“散列”样式数组而表现不同。例如:

myfunc(array("One", "Two", "Three")); // works
myfunc(array(1=>"One", 2=>"Two", 3=>"Three")); also works, but understands it's a hash

可能输出类似:

One, Two, Three
1=One, 2=Two, 3=Three

即:当函数“检测到”它传递的是散列而不是数组时,它会执行不同的操作。你能看出我来自 Perl 背景吗?其中 %hashes 与 @arrays 的引用不同?

我相信我的例子很重要,因为我们不能仅仅测试键是否是数字,因为您很可能在哈希中使用数字键。

我特别希望避免使用 myfunc(array(array(1=>"One"), array(2=>"Two"), array(3=>"Three"))) 的困惑结构。

最佳答案

直接从 kohana 框架中拉出。

public static function is_assoc(array $array)
{
// Keys of the array
$keys = array_keys($array);

// If the array keys of the keys match the keys, then the array must
// not be associative (e.g. the keys array looked like {0:0, 1:1...}).
return array_keys($keys) !== $keys;
}

关于php - 确定数组是否关联(散列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5996749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com