Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 从多行MySQL到单数组的值_Php_Mysql_Arrays_Mysqli - Fatal编程技术网

Php 从多行MySQL到单数组的值

Php 从多行MySQL到单数组的值,php,mysql,arrays,mysqli,Php,Mysql,Arrays,Mysqli,从MySQL数据库获取多行数据并尝试将结果转换为单个数组。由于数据来自一个自定义函数,在该函数中修改它将破坏许多其他功能,因此我无法更改获取数据的方式,因此必须在使用PHP检索后进行处理。这是一个示例: Array ( [0] => Array ( [FieldLabel] => [FieldName] => ID [FieldValue] => $ID

从MySQL数据库获取多行数据并尝试将结果转换为单个数组。由于数据来自一个自定义函数,在该函数中修改它将破坏许多其他功能,因此我无法更改获取数据的方式,因此必须在使用PHP检索后进行处理。这是一个示例:

Array
(
    [0] => Array
        (
            [FieldLabel] => 
            [FieldName] => ID
            [FieldValue] => $ID
            [FieldType] => 0
        )

    [1] => Array
        (
            [FieldLabel] => Name
            [FieldName] => Name
            [FieldValue] => $FieldName
            [FieldType] => 1
        )

)
在单个数组中仅使用所有值,但填充了变量的情况下,查找类似的内容:

Array('','ID',$ID,0,'Name','Name',$FieldName,1)
我在另一篇文章中发现了这个小函数,它似乎至少可以创建数组,但不幸的是,它不能创建数组,而且我对数组操作的了解还不够,无法对其进行排序。有什么想法吗

function array2Recursive($array)  {
    $lst = array();
    foreach( array_keys($array) as $k ) :
        $v = $array[$k];
        if (is_scalar($v)) :
            $lst[] = $v;
        elseif (is_array($v)) :
            $lst = array_merge($lst,array2Recursive($v));
        endif;
    endforeach;
    return array_values(array_unique($lst));
}

解决这个问题的一种方法是使用foreach循环遍历项并将它们添加到数组中:

$result = [];
foreach ($array as $a) {
    foreach($a as $item) {
        $result[] = $item;
    }
}

print_r($result);

您说过无法更改检索数据的方式。这是API还是您有权访问数据库?该数组不起作用,数组键必须是唯一的。如果您想访问
FieldType
什么是
0
2
??PHP数组必须具有唯一的索引。您的预期输出是不可能的,您可能正在寻找其他内容。解释如何处理数据可能更有帮助。正在通过自定义函数重试数据,在自定义函数中更改数据将影响许多使用数据的站点。为了澄清这一点,我试图模拟一个已经在使用的手动创建的数组,以便对数据使用相同的函数。关于唯一索引,你是对的,因为我想我没有很好地描述它。我要找的实际上只是一个只有值的数组,根本没有键,所以我会更正原来的问题。谢谢!尽管它给出了两个数组,其中一个包含完整的数据集,另一个仅包含部分数据集,但它似乎仍在工作。我不知道它是从哪里来的,但仍然试图确保它不是早期测试中的一些遗留代码。但是,没有看到任何。在上面的代码中,
$item
将是问题的示例数组之一,每个值都将添加到
$result
。您的数据结构是否与演示中的相同?再次感谢。不,很遗憾,我在复制和粘贴样本数组时犯了一个错误,但我已在原始问题中更正了它。然而,您建议的代码似乎工作得很好,尽管如果正确的数组会产生影响,我愿意尝试您建议的任何方法。进一步检查,这确实是根据需要工作的(额外的数组来自测试时得到的一个额外的print_r())尽管我似乎无法解决如何同时用值填充变量。作为以前使用的硬编码数组,它很简单,但来自数据库,不确定如何用实际值替换$ID和$FieldName。然而,我想这不是我最初问题的一部分,所以我要么创建一个新帖子,要么尝试找到一个解决方案。