检索子数组索引

时间:2017-10-01 21:42:32

标签: php arrays

鉴于[1=>[4=>[]],3=>[2=>[]],0=>[6=>[]],8=>[2=>[]]],我如何获得[4,2,6]?我显然可以使用foreach()循环,但我对是否有更简洁的解决方案感兴趣。

<?php

$arr1=[
    1=>[4=>[]],
    3=>[2=>[]],
    0=>[6=>[]],
    8=>[2=>[]],
];
print_r($arr1);
$arr2=[4,2,6,2];
print_r($arr1);
$arr3=array_values(array_unique($arr2));
print_r($arr3);


Array
(
    [1] => Array
        (
            [4] => Array
                (
                )

        )

    [3] => Array
        (
            [2] => Array
                (
                )

        )

    [0] => Array
        (
            [6] => Array
                (
                )

        )

    [8] => Array
        (
            [2] => Array
                (
                )

        )

)
Array
(
    [1] => Array
        (
            [4] => Array
                (
                )

        )

    [3] => Array
        (
            [2] => Array
                (
                )

        )

    [0] => Array
        (
            [6] => Array
                (
                )

        )

    [8] => Array
        (
            [2] => Array
                (
                )

        )

)
Array
(
    [0] => 4
    [1] => 2
    [2] => 6
)

2 个答案:

答案 0 :(得分:1)

你可能会这样做:

import pandas as pd
cis = pd.ExcelFile(r"C:\mypath\myfile.xlsx") 
df1 = cis.parse('1. Consumers', skiprows=[0,1,2,3,4,5,6],parse_cols=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]).drop([13])

这类似于第一条评论中提出的解决方案,但是当内部数组中有多个项目时,此方法也可以使用

答案 1 :(得分:0)

array_mapkey函数中最短的函数:

$result = array_unique(array_map(function($a){ return key($a); }, $arr1));
print_r($result);

输出:

Array
(
    [1] => 4
    [3] => 2
    [0] => 6
)