【问题标题】:PHP - find value in array 3DPHP - 在数组 3D 中查找值
【发布时间】:2020-07-27 10:48:14
【问题描述】:

我有类似这样的数据:

array("1"=>(array("UID"=>"5321", array("1"=>"age", "2"=>"gender", "3"=>"location")),
      "2"=>(array("UID"=>"3213", array("1"=>"location", "2"=>"gender")),
      "3"=>(array("UID"=>"4444", array("1"=>"application", "2"=>"gender"))
     );

所以,如果我按“年龄”搜索,结果是array("1"=>"5321")

如果我按“性别”搜索,结果是array("1"=>"5321", "2"=>"3213", "3"=>"4444")

基本上我想找谁在php中有特定的价值,我需要一个人来解决这个问题。

感谢您的宝贵时间 :)

编辑,这是我的片段:

$arr = array("1"=>(array("UID"=>"5321", array("1"=>"age", "2"=>"gender", "3"=>"location"))),
      "2"=>(array("UID"=>"3213", array("1"=>"location", "2"=>"gender"))),
      "3"=>(array("UID"=>"4444", array("1"=>"application", "2"=>"gender")))
     );
     
 $find = "age";
 $storedArr = false;
 foreach($arr as $key=>$arrValue){
    if(in_array($find, $arrValue)){
        if(!$storedArr)
            $storedArr = array("1"=>$arrValue["UID"]);
        else
            array_push($storedArr, $arrValue["UID"]);
    }
 }
 print_r($storedArr);

【问题讨论】:

  • 你能告诉我们你尝试了什么吗?
  • 你的数组结构看起来不对。
  • 给我一些时间,我会编辑它
  • 完成了,我无法访问它们的值属性

标签: php arrays search


【解决方案1】:

您的搜索值比索引 0 低一级。在我的代码中,这是 $subArr[0]。

$arr = array(
  "1"=>(array("UID"=>"5321", array("1"=>"age", "2"=>"gender", "3"=>"location"))),
  "2"=>(array("UID"=>"3213", array("1"=>"location", "2"=>"gender"))),
  "3"=>(array("UID"=>"4444", array("1"=>"application", "2"=>"gender")))
);

$find = "gender";
$storedArr = [];
foreach($arr as $id => $subArr){
  if(in_array($find, $subArr[0])){
    $storedArr[$id] = $subArr['UID'];
  }
}
var_export($storedArr);
//array ( 1 => '5321', 2 => '3213', 3 => '4444', )

【讨论】:

  • 那么,“UID”键之后的数组将被索引为零?我这样做是因为在我的系统上,我们有网格(数组以 1 开头),否则他们不会将其读取为网格
  • 是的,如果数字键尚不存在,PHP 中的数组将从 0 开始索引。键 'UID' 不计算在内,因为它不是数字键。
  • 以前不知道的东西,非常感谢
猜你喜欢
  • 2019-01-09
  • 2019-02-06
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
相关资源
最近更新 更多