项目的php索引

Posted

技术标签:

【中文标题】项目的php索引【英文标题】:php index of item 【发布时间】:2011-08-28 03:53:59 【问题描述】:

我有一个如下所示的数组:

$fruit = array('apple','orange','grape');

如何在上述数组中找到特定项目的索引? (例如,值“橙色”)

【问题讨论】:

【参考方案1】:

试试array_search 函数。

来自手册中的第一个示例:

<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;
?>

请注意

比较结果时,请确保使用 === 运算符显式测试值 false

由于 PHP 中的数组是从 0 开始的,如果您要搜索的元素是数组中的第一个元素,则返回值 0。

虽然 0 是一个有效结果,但它也是一个假值,这意味着以下操作将失败:

<?php
    $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');   

    $key = array_search('blue',$array);

    if($key == false) 
        throw new Exception('Element not found');
    
?>

这是因为== 运算符检查平等(通过类型杂耍),而=== 运算符检查身份

【讨论】:

我认为执行 if(in_array(.bit 应该可以保护我免受您在“小心”之后提到的问题的影响 代码有一个小错误,没有指定数组。应该是array_search('blue', $array)【参考方案2】:

你必须使用 array_search。

看这里http://www.php.net/manual/en/function.array-search.php

【讨论】:

返回值 如果在数组中找到 needle 则返回 TRUE,否则返回 FALSE。【参考方案3】:

请记住,如果您认为可以多次找到您的搜索项,则应使用array_keys(),因为它将返回所有匹配值的键,而不仅仅是第一个匹配键array_search()。

问候。

【讨论】:

以上是关于项目的php索引的主要内容,如果未能解决你的问题,请参考以下文章

如何删除数组中索引 X 处的项目? [复制]

从 php 循环中删除项目

php elasticsearch (四) 索引管理 --- 2022-04-02

index.php到哪个路由重定向?

PHP获取数组中最后插入项的索引

Laravel PackageManifest.php 第 131 行:未定义索引:名称