从php中的数组中获取数组值

时间:2015-10-21 20:04:27

标签: php cakephp-1.3

我在数组中有一个数组,我希望从那里获得user_id以设置为条件。我已经尝试了一切,没有成功。请帮忙。在此先感谢

<?php $post_user_obj = array('PostLike' => $post['PostLikesArray']); ?>

Array
(
[PostLike] => Array
    (
        [0] => Array
            (
                [user_id] => 47
                [post_id] => 109
            )

        [1] => Array
            (
                [user_id] => 62
                [post_id] => 109
            )

    )

 )


<?php if((array_search($id, array_column($post_user_obj, 'user_id')))): ?> 

<?php if(($id == $post_user_obj['PostLike']['user_id'])): ?> 

2 个答案:

答案 0 :(得分:0)

您需要引用父数组索引。如:

$id = $post_user_obj['Postlike'][0]['user_id'];

或者列出所有

foreach ($post_user_obj['PostLike'] as $this_user){
    $id = $this_user['user_id'];
}

答案 1 :(得分:0)

其中包含数组的数组称为多维数组。

您可以使用foreach遍历数组。然后使用另一个foreach再次遍历子阵列。例如:

$PostLike = array(array('user_id' => 47, 'post_id' => 109), array('user_id' => 62, 'post_id'=> 109));
foreach($PostLike as $subarray) {
     foreach($subarray as $name => $value) {
              if ($name == 'user_id') {
                echo $value . "\n";
         }

     }

}

输出:

47
62

演示:https://eval.in/454992

如果您想搜索特定值,可以执行以下操作:

$PostLike = array(array('user_id' => 47, 'post_id' => 109), array('user_id' => 62, 'post_id'=> 109));
$key = array_search(62, array_column($PostLike, 'user_id'));
if($key !== false){
      echo $PostLike[$key]['user_id'];
} else {
      echo 'not present';
}

输出:

62