Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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 从非静态多维数组获取页面id_Php_Arrays_Silverstripe 4 - Fatal编程技术网

Php 从非静态多维数组获取页面id

Php 从非静态多维数组获取页面id,php,arrays,silverstripe-4,Php,Arrays,Silverstripe 4,我试图从$arr获取ID键的值,而不指定其来自哪个嵌套数组。因此,从$arr内的所有嵌套数组返回ID $arr =array( array( 'title' => 'home', 'ID' => '45' ), array( 'title' => 'articleholder', 'ID' => '25' ), array( 'title' => 'article p

我试图从$arr获取ID键的值,而不指定其来自哪个嵌套数组。因此,从$arr内的所有嵌套数组返回ID

$arr =array(
array(
        'title' => 'home',
        'ID' => '45'
    ),

array(
        'title' => 'articleholder',
        'ID' => '25'
    ),

array(
        'title' => 'article page',
        'ID' => '23'
    )

$arr = SiteTree::get()->filter('ParentID', $page['ID'])->toNestedArray();
$id = 'ID'
var_dump($arr[$id]); //returns ['45, 25, 23']
如果类似的东西可以定义为函数:

var_dump($arr[array_reverse_search_allnested($id)]
抱歉有任何错误,这是一个小项目和我的php介绍

从筛选的sitetree返回的实际数组:

    array(0) {} array(0) {} array(0) {} array(0) {} array(0) {} array(0) {} array(0) {} array(0) {} array(0) {} array(1) {
    [
        0
    ]=> array(16) {
        [
            "ClassName"
        ]=> string(4) "Page" [
            "LastEdited"
        ]=> string(19) "2019-01-08 03:58:54" [
            "Created"
        ]=> string(19) "2019-01-08 03:58:43" [
            "CanViewType"
        ]=> string(7) "Inherit" [
            "CanEditType"
        ]=> string(7) "Inherit" [
            "Version"
        ]=> string(1) "3" [
            "URLSegment"
        ]=> string(7) "level-2" [
            "Title"
        ]=> string(7) "Level 2" [
            "ShowInMenus"
        ]=> string(1) "1" [
            "ShowInSearch"
        ]=> string(1) "1" [
            "Sort"
        ]=> string(1) "1" [
            "HasBrokenFile"
        ]=> string(1) "0" [
            "HasBrokenLink"
        ]=> string(1) "0" [
            "ParentID"
        ]=> string(2) "23" [
            "ID"
        ]=> int(24) [
            "RecordClassName"
        ]=> string(4) "Page"
    }
}

我认为您正在寻找从多维数组中提取一列的数组\列

$id = array_column($arr, "ID");
var_dump($id);
返回:

array(3) {
  [0]=>
  string(2) "45"
  [1]=>
  string(2) "25"
  [2]=>
  string(2) "23"
}
或者,您可以使用第三个参数作为ID,并获得以下输出:

$id = array_column($arr, "title","ID");
var_dump($id);

/*array(3) {
  [45]=>
  string(4) "home"
  [25]=>
  string(13) "articleholder"
  [23]=>
  string(12) "article page"
}*/

我把你的问题读了两遍。我不明白。你能提供一些背景吗?您对输入的预期结果是什么?您的输入数组可以变化多少?您需要递归过程吗?我正在尝试获取站点上每个页面的id、parentid和子项列表,以便使用这些信息创建可视化的sitetree。不幸的是,由于silverstripe sitetree::get没有返回每个页面的子页面,我必须在站点树中搜索与某个父id匹配的任何页面,然后获取该页面id。请提供更真实的输入数据和您的预期结果。我同意@mickmackusa,问题有点不清楚。记住你的下一个问题,包括输入和预期结果,最好是你已经尝试过的内容。基本上,我有这个数组。。。。我想要这个输出。。。。我已尝试使用此代码。。。。但是没有得到预期的结果,我做错了什么?我也这么想。样本输入可能有误导性。我想知道输入是否有更深的层次。谢谢,我应该进一步研究array列,我只是想确定array_search将有一个参数或用例来搜索嵌套。