Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php数组输入值和返回键_Php_Arrays_Session_Key - Fatal编程技术网

Php数组输入值和返回键

Php数组输入值和返回键,php,arrays,session,key,Php,Arrays,Session,Key,您好,我有一个$\u会话[“产品”]数组,$\u会话[“产品”]打印输出是: Array ( [0] => Array ( [id] => 152 [name] => 0 [total] => 3 ) [1] => Array ( [id] => 343 [name] =>

您好,我有一个
$\u会话[“产品”]
数组,
$\u会话[“产品”]
打印输出是:

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]

只需循环检查id即可。例如:

$search = 799;

foreach( $products as $key => $product ) {
    if( $product[ 'id' ] == $search ) {
       $item = $product;
       break;
    }
}

print_r( $product );
这是未测试的顺便说一句。这将打印出与id匹配的任何项目。如果您只需要密钥,请使用此项

$item = $key;

一个简单的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';
}

尚未测试,但应能正常工作:

$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
试试这个

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);
函数getIndex($name,$array){ foreach($key=>$value的数组){ if(is_数组($value)&&$value['id']==$name) 返回$key; } 返回null; } $array=array( 排列( “id”=>152, “名称”=>0, “总计”=>3 ), 排列( “id”=>152, “名称”=>0, “总计”=>3 ), 排列( “id”=>799, “名称”=>0, “总计”=>7 ), ); 印刷品(“”); 打印(数组); echo getIndex(799美元,数组);
只需使用
数组搜索()

那你试过什么。?
$i=0;
foreach($arr as $val_arr)
{
    $key = array_search(799,$val_arr);
    if(!empty($key))
    {
        echo $i; //"prints" 2
    }
    $i++;

}