编程语言您现在的位置是:首页 > 博客日志 > 编程语言

php获取关联数组key的index,如何根据key从关联数组中获取索引?

<a href='mailto:'>微wx笑</a>的头像微wx笑 2023-05-29编程语言 0 0关键字: php  关联数组  索引  

很多文章讲的其实是获取的key,并不是索引,这里讲的索引是像一维数据的0、1、2、等这样的数据。

无知人生,ivu4e.com,ivu4e.cn

很多文章讲的其实是获取的key,并不是索引,这里讲的索引是像一维数组的0、1、2、等这样的数据。CCz无知

给定数组:CCz无知

$messageType = [
    'text' => '文本',
    'image' => '图片',
    'voice' => '语音',
    'video' => '视频',
    'link' => '链接',
    'location' => '位置',
    'subscribe' => '订阅',
    'unsubscribe' => '取消订阅'
];

想通过 text 得到的是 0,传递 voice 等到的是 2CCz无知

实现方法CCz无知

要正确获取关联数组的数字索引,我们应该:CCz无知

1. 定义一个函数,传入要搜索的key和关联数组CCz无知

2. 在函数内部,先使用array_keys()获取数组的所有keyCCz无知

3. 然后遍历这个key数组,如果找到搜索的key,则返回其对应的数字索引CCz无知

4. 如果未找到,返回-1CCz无知

所以,我们可以定义这样一个函数:CCz无知

/**
  获取 $key 在关联数组 $messageType 中的索引位置
*/
function array_index($key, $messageType){
  if (array_key_exists($key, $messageType))
  {
      $keys = array_keys($messageType);
      for ($i = 0; $i < count($keys); $i++){
         if ($key === $keys[$i]){
             return $i; 
         }
      }
  }
  return -1; 
}

使用方法CCz无知

echo 'index ==' . array_index('voice',$messageType) . "<br>"; //输出 index ==2
echo 'index ==' . array_index('text',$messageType) . "<br>"; //输出 index ==0


CCz无知

无知人生,ivu4e.com,ivu4e.cn

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/lang/2023-05-29/1899.html

很赞哦! () 有话说 ()