Php 如何从数组中提取值(数组值不起作用)?

Php 如何从数组中提取值(数组值不起作用)?,php,arrays,Php,Arrays,我有以下PHP数组 [1] => Array ( [0] => 9780881220766 [1] => 0881220760 ) [2] =>

我有以下PHP数组

 [1] => Array
                                (
                                    [0] => 9780881220766
                                    [1] => 0881220760
                                )

                            [2] => Array
                                (
                                    [0] => 9780141374284
                                    [1] => 0141374284
                                )

                            [3] => Array
                                (
                                    [0] => 057305133X
                                    [1] => 9780573051333
                                ))
我希望输出如下:

  [0] => 9780881220766
                                        [1] => 0881220760
                                        [2] => 9780141374284
                                        [3] => 0141374284
                                        [4] => 057305133X
                                        [5] => 9780573051333
我尝试使用
array\u值
,但没有得到任何输出

我还尝试使用foreach循环提取值:

   foreach ($rawIsbns as $isbnKey => $isbnValue){
            $formattedIsbns[] = $isbnValue;
        }

但是,我不负责管理。

创建了此函数,允许您将1个或多个数组合并为所需的格式:

$a = array();
foreach ($array as $tmp) {
 if (is_array($tmp))  $a = array_merge($a, $tmp);
}
function sortarr(...$arr){
    $tmparr = [];
    foreach($arr as $aa) foreach($aa as $a) $tmparr = array_merge($tmparr, $a);
    return $tmparr;
}
用法示例:

<?php 
    # First array provided
    $array = array(
        [
            "9780881220766",
            "0881220760"
        ], 
        [
            "9780141374284",
            "0141374284"
        ],
        [
            "057305133X",
            "9780573051333"
        ]
    );
    
    # Second array just to show how you can input more than 1 array into the function
    $array2 = array(
        [
            "6234808972234",
            "67834757"
        ], 
        [
            "0287568924344234",
            "234690543"
        ],
        [
            "34565786978099x",
            "3569876546"
        ]
    );

    function sortarr(...$arr){
        # Declare our temp array
        $tmparr = [];

        # Iterates through each of the arrays inside the array(s) provided
        foreach($arr as $aa) foreach($aa as $a) $tmparr = array_merge($tmparr, $a);

        # Return the results
        return $tmparr;
    }
    
    print_r( sortarr($array, $array2) );

实时演示:

我通过初始化一个数组并使用array\u push添加后续嵌套数组的值,成功地解决了这个问题

function isbns($rawIsbns) {
        $prevArrayValues = null;
        foreach ($rawIsbns as $value) {
            if (!isset($prevArrayValues)) {
                $prevArrayValues = []; //initiallise first value unless initialized
            }

            if (empty($value)) {
                $return = []; //disregard empty values
            } else {
                $return = $value; // add arrays to existing array
            }

            $prevArrayValues = array_merge($prevArrayValues, $return);
        }
        return $prevArrayValues;
    }

您有一个多维数组,这意味着您需要嵌套循环。在您尝试的循环中,
$isbnValue
是一个数组,而不是单个ISBN。这是否回答了您的问题?
function isbns($rawIsbns) {
        $prevArrayValues = null;
        foreach ($rawIsbns as $value) {
            if (!isset($prevArrayValues)) {
                $prevArrayValues = []; //initiallise first value unless initialized
            }

            if (empty($value)) {
                $return = []; //disregard empty values
            } else {
                $return = $value; // add arrays to existing array
            }

            $prevArrayValues = array_merge($prevArrayValues, $return);
        }
        return $prevArrayValues;
    }