gpt4 book ai didi

php - 对象到数组

转载 作者:行者123 更新时间:2023-12-01 00:55:27 24 4
gpt4 key购买 nike

我需要获取一个对象 $resultInput 以将其视为一个数组(如 $resultInput 被注释掉)。但是,当我使用函数对象来排列时,出现错误 Resource id #5。什么问题?

require('dbc.php');

mysql_select_db($db);
$resultInput = mysql_query("SHOW COLUMNS FROM about WHERE Field NOT IN ('id', 'created', 'date_modified', 'last_modified', 'update', 'type', 'bodytext') AND Field NOT REGEXP '_image'"); // selects only the columns I want

//$resultInput = array('page_header', 'sub_header', 'content', 'content_short');

function objectToArray($object){
if(!is_object($object) && !is_array($object)){
return $object;
}
if(is_object($object)){
$object = get_object_vars( $object );
}
return array_map( 'objectToArray', $object );
}

// convert object to array
$array = objectToArray( $resultInput );

//show the array
print_r( $array );

最佳答案

你得到这个错误是因为 mysql_query() 返回一个资源,而不是一个对象。要获取对象,您需要使用 mysql 函数之一将行集检索为对象(即 mysql_fetch_object())。但是,您不需要 objectToArray 函数,因为您可以只使用 mysql_fetch_array以数组形式获取行集,如下所示:

$result = mysql_query("...");
$resultInput = mysql_fetch_array( $result);

此外,我确定有人会对使用现已弃用的 mysql 函数发表评论。但是,为了彻底,您应该考虑使用 mysqliPDO

所以你得到了这个作为输出:

array(12) {
[0] = > string(11)"page_header"
["Field"] = > string(11)"page_header"
[1] = > string(11)"varchar(50)"
["Type"] = > string(11)"varchar(50)"
[2] = > string(3)"YES"
["Null"] = > string(3)"YES"
[3] = > string(0)""
["Key"] = > string(0)""
[4] = > NULL
["Default"] = > NULL
[5] = > string(0)""
["Extra"] = > string(0)""
}

它描述了 page_header 列。要只显示所有列的列名,您可以:

$result = mysql_query("..."); $columns = array();
while( $row = mysql_fetch_array( $result) {
$columns[] = $row['Field'];
}

var_dump( $columns);

关于php - 对象到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11295639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com