Php 如何在数组中按值获取键

Php 如何在数组中按值获取键,php,arrays,Php,Arrays,我在获取数组中匹配值的键时遇到一些问题。这是我的阵列 Array ( [0] => Array ( [0] => 1001;vbaker;Test@test.com;Vern;Baker; ) [1] => Array ( [0] => 1002;Tesdsd;Test@test.com;Test;vbaker; ) [2] =>

我在获取数组中匹配值的键时遇到一些问题。这是我的阵列

Array
(
    [0] => Array
        (
            [0] => 1001;vbaker;Test@test.com;Vern;Baker;
        )

    [1] => Array
        (
            [0] => 1002;Tesdsd;Test@test.com;Test;vbaker;
        )

    [2] => Array
        (
            [0] => 1003;demosa;demo@dime.com;Baker;Tesdsd;
        )

)
例如,这里我想得到1002(值)的。。我怎样才能得到那个。。?
我需要的是,我只有id(比如1002),所以我必须得到其他值,比如
Tesdsd;Test@test.com;试验;vbaker

在数组中循环,在
上拆分
,将第一部分和最后一部分存储到变量中(
$first
$last
),检查
$first
是否与搜索字符串相同,如果相同,则返回
$last

$search = 1002;

foreach ($array as $key => $sub) {
    list($first, $last) = explode(';', $sub[0], 2);
    if ($first == $search) {
        echo $last;
    }
}
输出:

Tesdsd;Test@test.com;Test;vbaker;

在数组中循环,在
上拆分
,将第一部分和最后一部分存储到变量中(
$first
$last
),检查
$first
是否与搜索字符串相同,如果相同,则返回
$last

$search = 1002;

foreach ($array as $key => $sub) {
    list($first, $last) = explode(';', $sub[0], 2);
    if ($first == $search) {
        echo $last;
    }
}
输出:

Tesdsd;Test@test.com;Test;vbaker;

在数组中循环,在
上拆分
,将第一部分和最后一部分存储到变量中(
$first
$last
),检查
$first
是否与搜索字符串相同,如果相同,则返回
$last

$search = 1002;

foreach ($array as $key => $sub) {
    list($first, $last) = explode(';', $sub[0], 2);
    if ($first == $search) {
        echo $last;
    }
}
输出:

Tesdsd;Test@test.com;Test;vbaker;

在数组中循环,在
上拆分
,将第一部分和最后一部分存储到变量中(
$first
$last
),检查
$first
是否与搜索字符串相同,如果相同,则返回
$last

$search = 1002;

foreach ($array as $key => $sub) {
    list($first, $last) = explode(';', $sub[0], 2);
    if ($first == $search) {
        echo $last;
    }
}
输出:

Tesdsd;Test@test.com;Test;vbaker;

这会让你走上正确的道路

$yourKey = null;
foreach ($arr as $key => $value) {
    if($value == $someSearchQuery){
        $yourKey = $key;
    }
}

这会让你走上正确的轨道

$yourKey = null;
foreach ($arr as $key => $value) {
    if($value == $someSearchQuery){
        $yourKey = $key;
    }
}

这会让你走上正确的轨道

$yourKey = null;
foreach ($arr as $key => $value) {
    if($value == $someSearchQuery){
        $yourKey = $key;
    }
}

这会让你走上正确的轨道

$yourKey = null;
foreach ($arr as $key => $value) {
    if($value == $someSearchQuery){
        $yourKey = $key;
    }
}
要获取值,请执行以下操作:

$search = 1002;
$result = array_values(preg_grep("/$search/", call_user_func_array('array_merge', $array)))[0];
其中:

1002;Tesdsd;Test@test.com;Test;vbaker;
然后您可以在
上进行
分解()并获取所需的零件

要获取键/索引(即1),请尝试:

要获取值,请执行以下操作:

$search = 1002;
$result = array_values(preg_grep("/$search/", call_user_func_array('array_merge', $array)))[0];
其中:

1002;Tesdsd;Test@test.com;Test;vbaker;
然后您可以在
上进行
分解()并获取所需的零件

要获取键/索引(即1),请尝试:

要获取值,请执行以下操作:

$search = 1002;
$result = array_values(preg_grep("/$search/", call_user_func_array('array_merge', $array)))[0];
其中:

1002;Tesdsd;Test@test.com;Test;vbaker;
然后您可以在
上进行
分解()并获取所需的零件

要获取键/索引(即1),请尝试:

要获取值,请执行以下操作:

$search = 1002;
$result = array_values(preg_grep("/$search/", call_user_func_array('array_merge', $array)))[0];
其中:

1002;Tesdsd;Test@test.com;Test;vbaker;
然后您可以在
上进行
分解()并获取所需的零件

要获取键/索引(即1),请尝试:


因为我非常喜欢PHP的数组函数,下面是我的2美分:

$search = '1003';

$matches = array_filter($array, function($v) use ($search) {

    return strpos($v[0], $search) !== false;

});

echo 'The keys are: ' . implode(', ', array_keys($matches));
//编辑:

如果您实际上不需要(如您在原始问题中所述),但也希望使用,这可能是一种更好的方法:

$search = '1003';

array_walk($array, function($v, $k) use ($search) {

    if ( strpos($v[0], $search) !== false )
    {
        // do whatever you want with the data
        echo 'Found ' . ltrim($v[0], $search.';') . ' at key ' . $k;
    }

});

其他答案也可以,但正如我所说,我非常喜欢数组函数,因为我发现它们比循环更优雅。

因为我非常喜欢PHP的数组函数,这里是我的2美分:

$search = '1003';

$matches = array_filter($array, function($v) use ($search) {

    return strpos($v[0], $search) !== false;

});

echo 'The keys are: ' . implode(', ', array_keys($matches));
//编辑:

如果您实际上不需要(如您在原始问题中所述),但也希望使用,这可能是一种更好的方法:

$search = '1003';

array_walk($array, function($v, $k) use ($search) {

    if ( strpos($v[0], $search) !== false )
    {
        // do whatever you want with the data
        echo 'Found ' . ltrim($v[0], $search.';') . ' at key ' . $k;
    }

});

其他答案也可以,但正如我所说,我非常喜欢数组函数,因为我发现它们比循环更优雅。

因为我非常喜欢PHP的数组函数,这里是我的2美分:

$search = '1003';

$matches = array_filter($array, function($v) use ($search) {

    return strpos($v[0], $search) !== false;

});

echo 'The keys are: ' . implode(', ', array_keys($matches));
//编辑:

如果您实际上不需要(如您在原始问题中所述),但也希望使用,这可能是一种更好的方法:

$search = '1003';

array_walk($array, function($v, $k) use ($search) {

    if ( strpos($v[0], $search) !== false )
    {
        // do whatever you want with the data
        echo 'Found ' . ltrim($v[0], $search.';') . ' at key ' . $k;
    }

});

其他答案也可以,但正如我所说,我非常喜欢数组函数,因为我发现它们比循环更优雅。

因为我非常喜欢PHP的数组函数,这里是我的2美分:

$search = '1003';

$matches = array_filter($array, function($v) use ($search) {

    return strpos($v[0], $search) !== false;

});

echo 'The keys are: ' . implode(', ', array_keys($matches));
//编辑:

如果您实际上不需要(如您在原始问题中所述),但也希望使用,这可能是一种更好的方法:

$search = '1003';

array_walk($array, function($v, $k) use ($search) {

    if ( strpos($v[0], $search) !== false )
    {
        // do whatever you want with the data
        echo 'Found ' . ltrim($v[0], $search.';') . ' at key ' . $k;
    }

});

其他答案也会起作用,但正如我所说,我非常喜欢数组函数,因为我发现它们比循环更优雅。

在数组中循环,并使用explode()在分号上分隔?通过“键”,你是指外部数组的索引吗?因此,给定
1002
,您希望结果为
1
?是的..我希望获得特定匹配值的索引您的更新似乎与此矛盾。数组中的每个元素都是长度为1的数组,每个单独的子元素都包含一个字符串。您是否建议将该字符串分解为一个数组(分隔符
),这样搜索“1002”的预期结果将是
[1][0][0]
?在数组中循环并使用explode()在分号上分隔?通过“key”,您是指外部数组的索引吗?因此,给定
1002
,您希望结果为
1
?是的..我希望获得特定匹配值的索引您的更新似乎与此矛盾。数组中的每个元素都是长度为1的数组,每个单独的子元素都包含一个字符串。您是否建议将该字符串分解为一个数组(分隔符
),这样搜索“1002”的预期结果将是
[1][0][0]
?在数组中循环并使用explode()在分号上分隔?通过“key”,您是指外部数组的索引吗?因此,给定
1002
,您希望结果为
1
?是的..我希望获得特定匹配值的索引您的更新似乎与此矛盾。数组中的每个元素都是长度为1的数组,每个单独的子元素都包含一个字符串。您是否建议将该字符串分解为一个数组(分隔符
),这样搜索“1002”的预期结果将是
[1][0][0]
?在数组中循环并使用explode()在分号上分隔?通过“key”,您是指外部数组的索引吗?因此,给定
1002
,您希望结果为
1
?是的..我想得到特定匹配值的索引您的更新似乎与此矛盾。您的