php - array_column 在 PHP 5.6 中返回空数组
问题描述
在使用 Yii1 框架和 PHP 5.6.40 的生产环境中,array_column 函数返回一个空数组。
该数组是来自另一个 CActiveRecord 的 HAS_MANY 关系的 CActiveRecord 列表。在我的本地机器(PHP 7.1.23)上,array_column 函数按预期工作。除非我误解,否则文档说 array_column 在 PHP 5.6.40 中可用。
/**
* This is the model class for table 'my_active_record'.
*
* The following are the available columns in table 'my_active_record':
* @property integer $id
*
* The following are the available model relations:
* @property RelatedActiveRecord[] $relatedActiveRecords
*/
class MyActiveRecord extends CActiveRecord
{
public function relations()
{
return array(
'relatedActiveRecords' => array(self::HAS_MANY, 'related_active_records', 'my_active_record_id')
);
}
}
/**
* This is the model class for table 'related_active_record'.
*
* The following are the available columns in table 'related_active_record':
* @property integer $id
* @property integer $my_active_record_id
*
* The following are the available model relations:
* @property MyActiveRecord $myActiveRecord
*/
class MyActiveRecord extends CActiveRecord
{
public function relations()
{
return array(
'myActiveRecord' => array(self::BELONGS_TO, 'my_active_record', 'my_active_record_id')
);
}
}
$myActiveRecord = new MyActiveRecord();
print_r(array_column($myActiveRecord->relatedActiveRecords, 'id'));
预期结果:Array ( [0] => 1 [1] => 2 [2] => 3 )
实际结果:Array ( ).
解决方案
版本 说明 7.0.0 添加了输入参数为对象数组的功能。
推荐阅读
- r - R:如何合并两列(列加法)同时忽略具有相同值的行
- chef-infra - 厨师检查包已安装
- validation - springMVC 5.1.6 验证不起作用(BindingResult 错误为 0?)
- excel - Excel中的增量加法
- python - 如何运行具有可变范围的for循环?
- python - 我如何使用 GuildChannel.Delete 和 discord.py?
- javascript - React TypeError this.state.data.map 不是函数
- arrays - 如何将 JSON 数组发送到 Swift 3 iOS 的 POST 请求?
- android - 颤振 APK 构建
- python - python如何使用烧瓶中的werkzeug记录器将错误消息写入错误日志和主日志