Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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_Foreach_Explode - Fatal编程技术网

Php 如何从三维数组中获取单个变量?

Php 如何从三维数组中获取单个变量?,php,arrays,foreach,explode,Php,Arrays,Foreach,Explode,我有一些东西,我认为这是一个三维数组: $var = '1,Tony,186|2,Andrea,163|3,Peter,178|4,Sally,172'; 所以变量中有两个数组。第一个被|隔开,第二个被 我需要做的是:将它们分开,然后检查位于名称前面的ID,并为其余部分提供单个变量。 我这样试过: <?php $personid = 3; $var = '1,Tony,186|2,Andrea,163|3,Peter,178|4,Sally,172'; $array = explod

我有一些东西,我认为这是一个三维数组:

$var = '1,Tony,186|2,Andrea,163|3,Peter,178|4,Sally,172';
所以变量中有两个数组。第一个被|隔开,第二个被

我需要做的是:将它们分开,然后检查位于名称前面的ID,并为其余部分提供单个变量。 我这样试过:

<?php
$personid = 3;

$var = '1,Tony,186|2,Andrea,163|3,Peter,178|4,Sally,172';

$array = explode('|',$var);

foreach($array as $values) {
    $arr = explode(",",$values);
    foreach($arr as $value) {
        if($value[0] == $personid) {
        $id = $value[0];
        $name = $value[1];
        $height = $value[2];
        $killloop = 1;
        }
    }
    if($killloop == 1) {
    break;
    }
}

echo 'ID: '.$id.'<br> Name: '.$name.'<br> Height: '.$height;

?>

有人能帮忙吗?

不需要循环到第二个数组,您已经定义了位置。 始终使用break语句立即结束循环,这是一种很好的做法

<?php
$personid = 3;

$var = '1,Tony,186|2,Andrea,163|3,Peter,178|4,Sally,172';

$array = explode('|',$var);

foreach($array as $values) {
    $arr = explode(",",$values);
    if(!empty($arr) && $arr[0] == $personid){
        $id = $arr[0];
        $name = $arr[1];
        $height = $arr[2];
        break;
    }
}

echo 'ID: '.$id.'<br> Name: '.$name.'<br> Height: '.$height;

?>

Hmmm,我想知道为什么我的评论被删除了。非常感谢你!思考有时过于复杂。:)
<?php
$personid = 3;

$var = '1,Tony,186|2,Andrea,163|3,Peter,178|4,Sally,172';

$array = explode('|',$var);

foreach($array as $values) {
    $arr = explode(",",$values);
    if(!empty($arr) && $arr[0] == $personid){
        $id = $arr[0];
        $name = $arr[1];
        $height = $arr[2];
        break;
    }
}

echo 'ID: '.$id.'<br> Name: '.$name.'<br> Height: '.$height;

?>