杨__羊羊
如果正在搜索的单词大小写不同,则在尝试查找匹配项时,许多常用的数组方法将不起作用,但是使用“preg_grep然而”将允许以不区分大小写的方式查找匹配项。function findflavour( $search, $haystack ){ foreach( $haystack as $index => $arr ){ $res=preg_grep( sprintf( '@%s@i', $search ), $arr ); if( !empty( $res ) ) return array_search( array_values( $res )[0], $arr ); } return false;}$search='BaNanA';$flavours=array( array( 799390 => 'Banana' ), array( 799391 => 'Chocolate' ), array( 729361 => 'Chilli' ), array( 879695 => 'Apple' ), array( 995323 => 'Avacado' ), array( 528362 => 'Orange' ), array( 723371 => 'Cherry' ),);printf( 'Key:%s', findflavour( $search, $flavours ) );如果源数组中可能存在多个具有相同值但 ID 不同的元素,则该findflavour函数的版本略有不同function findflavour( $search, $haystack, $multiple=false ){ $keys=[]; foreach( $haystack as $index => $arr ){ $res=preg_grep( sprintf( '@%s@i', $search ), $arr ); if( !empty( $res ) ) { $key=array_search( array_values( $res )[0], $arr ); if( $multiple )$keys[]=$key; else return $key; } } return $multiple ? $keys : false;}$multiple=true;$search='AVacAdo';$flavours=array( array( 799390 => 'Banana' ), array( 799391 => 'Chocolate' ), array( 291333 => 'Avacado' ), array( 729361 => 'Chilli' ), array( 879695 => 'Apple' ), array( 995323 => 'Avacado' ), array( 528362 => 'Orange' ), array( 723371 => 'Cherry' ),);printf( 'Key(s): %s', print_r( findflavour( $search, $flavours, $multiple ), true ) );