Php数组搜索问题
我一直在尝试使用数组搜索函数 这是我的阵列:Php数组搜索问题,php,Php,我一直在尝试使用数组搜索函数 这是我的阵列: array (size=23) 0 => array (size=3) 0 => string '15' (length=2) 1 => float 115.08386533184 2 => string '2014-02-06 21:00:00' (length=19) 1 => array (size=3) 0 => string '8
array (size=23)
0 =>
array (size=3)
0 => string '15' (length=2)
1 => float 115.08386533184
2 => string '2014-02-06 21:00:00' (length=19)
1 =>
array (size=3)
0 => string '81' (length=2)
1 => float 100.41587590619
2 => string '2014-03-28 00:00:00' (length=19)
2 =>
array (size=3)
0 => string '65' (length=2)
1 => float 99.096448338334
2 => string '2014-02-08 21:00:00' (length=19)
3 =>
array (size=3)
0 => string '53' (length=2)
1 => float 98.752479251378
2 => string '2014-03-05 12:00:00' (length=19)
4 =>
array (size=3)
0 => string '24' (length=2)
1 => float 98.303557178126
2 => string '2014-02-07 21:00:00' (length=19)
5 =>
array (size=3)
0 => string '23' (length=2)
1 => float 98.270536817788
2 => string '2014-02-08 21:30:00' (length=19)
6 =>
array (size=3)
0 => string '37' (length=2)
1 => float 98.139812350661
2 => string '2014-02-06 23:00:00' (length=19)
7 =>
array (size=3)
0 => string '13' (length=2)
1 => float 97.810954038756
2 => string '2014-02-09 19:45:00' (length=19)
8 =>
array (size=3)
0 => string '22' (length=2)
1 => float 95.975221202728
2 => string '2014-02-11 20:30:00' (length=19)
9 =>
array (size=3)
0 => string '66' (length=2)
1 => float 94.115075316114
2 => string '2014-02-04 19:00:00' (length=19)
10 =>
array (size=3)
0 => string '52' (length=2)
1 => float 93.957291067159
2 => string '2014-03-15 00:00:00' (length=19)
11 =>
array (size=3)
0 => string '12' (length=2)
1 => float 89.188128768086
2 => string '2014-05-17 10:00:00' (length=19)
12 =>
array (size=3)
0 => string '51' (length=2)
1 => float 88.381986169995
2 => string '2014-03-27 12:00:00' (length=19)
13 =>
array (size=3)
0 => string '98' (length=2)
1 => float 85.240471279545
2 => string '2014-02-17 18:00:00' (length=19)
14 =>
array (size=3)
0 => string '92' (length=2)
1 => float 82.721601210972
2 => string '2014-02-06 20:15:00' (length=19)
15 =>
array (size=3)
0 => string '82' (length=2)
1 => float 82.473535719129
2 => string '2014-02-27 17:00:00' (length=19)
16 =>
array (size=3)
0 => string '121' (length=3)
1 => float 56.833974620724
2 => string '2014-02-07 22:30:00' (length=19)
17 =>
array (size=3)
0 => string '120' (length=3)
1 => float 36.269423317467
2 => string '2014-02-06 21:30:00' (length=19)
18 =>
array (size=3)
0 => string '83' (length=2)
1 => float 35.863780709688
2 => string '2014-02-21 07:00:00' (length=19)
19 =>
array (size=3)
0 => string '35' (length=2)
1 => float 24.322967350005
2 => string '2014-02-07 21:30:00' (length=19)
20 =>
array (size=3)
0 => string '6' (length=1)
1 => float 19.71405484708
2 => string '2014-02-14 22:00:00' (length=19)
21 =>
array (size=3)
0 => string '45' (length=2)
1 => float 19.142717452481
2 => string '2014-03-15 00:00:00' (length=19)
22 =>
array (size=3)
0 => string '117' (length=3)
1 => float 17.641278106673
2 => string '2014-02-18 17:30:00' (length=19)
现在,我使用array_search来获取特定ID的键(注意:ID是每个数组中的第一个值)。问题是,它不起作用,可能是因为它无法获取数组本身的密钥
让我给你看一个例子:($array=上面的数组)
我希望$r等于3,因为这是数组的关键位置。
你知道我怎么做吗
$r = array_search('53', array_map(function($x) { return $x[0]; }, $array));
array\u map
将构建数组中每个元素的元素0的数组。然后在此搜索53
,其位置将为$r
或者您可以简单地编写一个循环:
foreach ($array as $i => $el) {
if ($el[0] == '53') {
$r = $i;
$result = $el;
break;
}
}
array\u map
将构建数组中每个元素的元素0的数组。然后在此搜索53
,其位置将为$r
或者您可以简单地编写一个循环:
foreach ($array as $i => $el) {
if ($el[0] == '53') {
$r = $i;
$result = $el;
break;
}
}
array\u map
将构建数组中每个元素的元素0的数组。然后在此搜索53
,其位置将为$r
或者您可以简单地编写一个循环:
foreach ($array as $i => $el) {
if ($el[0] == '53') {
$r = $i;
$result = $el;
break;
}
}
array\u map
将构建数组中每个元素的元素0的数组。然后在此搜索53
,其位置将为$r
或者您可以简单地编写一个循环:
foreach ($array as $i => $el) {
if ($el[0] == '53') {
$r = $i;
$result = $el;
break;
}
}
我搜索了SO,发现了一个类似的主题: 我稍微修改了上面提供的一个解决方案
$id=53;
$r=null;
$data=null;
foreach ($array as $idx=>$subArray) {
if ( $subArray[0] == $id ) {
$r=$idx;
$target=$subArray;
break;
}
}
我搜索了SO,发现了一个类似的主题: 我稍微修改了上面提供的一个解决方案
$id=53;
$r=null;
$data=null;
foreach ($array as $idx=>$subArray) {
if ( $subArray[0] == $id ) {
$r=$idx;
$target=$subArray;
break;
}
}
我搜索了SO,发现了一个类似的主题: 我稍微修改了上面提供的一个解决方案
$id=53;
$r=null;
$data=null;
foreach ($array as $idx=>$subArray) {
if ( $subArray[0] == $id ) {
$r=$idx;
$target=$subArray;
break;
}
}
我搜索了SO,发现了一个类似的主题: 我稍微修改了上面提供的一个解决方案
$id=53;
$r=null;
$data=null;
foreach ($array as $idx=>$subArray) {
if ( $subArray[0] == $id ) {
$r=$idx;
$target=$subArray;
break;
}
}
使用和
使用和
使用和
使用和
比
array\u map()
更好的分离第一列值的调用是:array\u column()
。这是为其创建函数的任务
使用此实现:
$r = array_search('53', array_column($array,0));
完成。比
array\u map()
更好的分离第一列值的调用是:array\u column()
。这是为其创建函数的任务
使用此实现:
$r = array_search('53', array_column($array,0));
完成。比
array\u map()
更好的分离第一列值的调用是:array\u column()
。这是为其创建函数的任务
使用此实现:
$r = array_search('53', array_column($array,0));
完成。比
array\u map()
更好的分离第一列值的调用是:array\u column()
。这是为其创建函数的任务
使用此实现:
$r = array_search('53', array_column($array,0));
完成。发布这样的结构时,从浏览器的页面源复制,以便保留
print\u r()、var\u dump()中的换行和缩进格式。
。然后在这里将其格式化为代码块,我们更容易直观地理解。array\u键($array)
只是顶级数组的索引,从'0到22。您需要的是获取每个子数组的元素0,并在其中搜索53。@Barmar我知道,问题是我正在试图通过搜索子数组中的ID来获取顶级数组键位置。发布这样的结构时,请从浏览器的页面源复制,以便保留print_r(),var_dump()中的换行符和缩进格式
。然后在这里将其格式化为代码块,我们更容易直观地理解。array\u键($array)
只是顶级数组的索引,从'0到22。您需要的是获取每个子数组的元素0,并在其中搜索53。@Barmar我知道,问题是我正在试图通过搜索子数组中的ID来获取顶级数组键位置。发布这样的结构时,请从浏览器的页面源复制,以便保留print_r(),var_dump()中的换行符和缩进格式
。然后在这里将其格式化为代码块,我们更容易直观地理解。array\u键($array)
只是顶级数组的索引,从'0到22。您需要的是获取每个子数组的元素0,并在其中搜索53。@Barmar我知道,问题是我正在试图通过搜索子数组中的ID来获取顶级数组键位置。发布这样的结构时,请从浏览器的页面源复制,以便保留print_r(),var_dump()中的换行符和缩进格式
。然后在这里将其格式化为代码块,我们更容易直观地理解。array\u键($array)
只是顶级数组的索引,从'0到22。您想要的是获取每个子数组的元素0,并在其中搜索53。@Barmar我知道,问题是我试图通过搜索子数组中的ID来获取顶级数组键位置