【问题标题】:Php array entry value and return key [closed]PHP数组条目值和返回键[关闭]
【发布时间】:2014-01-09 08:40:22
【问题描述】:
嗨,我有一个 $_SESSION["product"] 数组,$_SESSION["product"] print_r 输出是:
Array
(
[0] => Array
(
[id] => 152
[name] => 0
[total] => 3
)
[1] => Array
(
[id] => 343
[name] => 0
[total] => 5
)
[2] => Array
(
[id] => 799
[name] => 0
[total] => 7
)
)
例如,当我搜索 id 并找到主键时,我想输出;当我写 799 时,输出为 2 或
$_SESSION["product"][2]
【问题讨论】:
标签:
php
arrays
session
key
【解决方案1】:
尚未测试,但应该可以:
$search = 799; // id to search
foreach($_SESSION["product"] as $key => $array) // Look through session array
{
if($array["id"] == $search) // Found your id
{
$output = $key; // Set id to variable
break; // Exit loop
}
}
echo $output; // Your output
【解决方案2】:
只需循环并检查 id。例如:
$search = 799;
foreach( $products as $key => $product ) {
if( $product[ 'id' ] == $search ) {
$item = $product;
break;
}
}
print_r( $product );
顺便说一句,这是未经测试的。这将打印出与 id 匹配的项目。如果您只想要密钥,请改用它。
$item = $key;
【解决方案3】:
一个简单的 foreach 循环就可以做到这一点。当你点击你期望的id时,返回数组记录的键。
$search_for = 799;
foreach($_SESSION["product"] as $key => $data) {
if($data['id'] == $search_for) {
$result = $key;
break;
}
}
if($result) {
echo 'Result is: ' . $result;
} else {
echo 'No match';
}
【解决方案4】:
试试这个
function getIndex($name, $array){
foreach($array as $key => $value){
if(is_array($value) && $value['id'] == $name)
return $key;
}
return null;
}
$array = Array(
array(
'id' => 152,
'name' => 0,
'total' => 3
),
array(
'id' => 152,
'name' => 0,
'total' => 3
),
array(
'id' => 799,
'name' => 0,
'total' => 7
),
);
print_r('<pre>');
print_r($array);
echo getIndex(799, $array);
【解决方案5】:
只需使用 array_search()
$i=0;
foreach($arr as $val_arr)
{
$key = array_search(799,$val_arr);
if(!empty($key))
{
echo $i; //"prints" 2
}
$i++;
}