gpt4 book ai didi

php - 从未知对象属性构建数组

转载 作者:可可西里 更新时间:2023-11-01 01:06:50 25 4
gpt4 key购买 nike

我正在尝试从 PHP 中的对象构建数组。我只想要对象的某些属性,但我不知道它们每次都是什么。我需要的属性名称存储在一个数组中。这是我的代码目前的工作方式:

// Hard-coded attributes 'colour' and 'size'

while ($objVariants->next())
{
$arrVariants[] = array
(
'pid' => $objVariants->pid,
'size' => $objVariants->size,
'colour' => $objVariants->colour,
'price' => $objVariants->price
);
}

我不想对属性(颜色和大小)进行硬编码,而是使用变量,这是因为它可能并不总是颜色和大小,具体取决于用户在 CMS 中的设置。例如:

$arrVariantAttr = $this->getVariantAttr(); // Get the names of the custom variants and put them in an array e.g colour, size

while ($objVariants->next())
{
$arrVariants[] = array
(
'pid' => $objVariants->pid,

foreach($arrVariantAttr as $attr)
{
$attr['name'] => $objVariants-> . $attr['name']; // Get each variant out of the object and put into an array
}

'price' => $objVariants->price
);
}

上面的代码不起作用,但希望它能说明我正在尝试做的事情。任何帮助将不胜感激,谢谢!

最佳答案

您可以使用 get_object_vars() 获取对象的所有变量:

$arrVariants[] = get_object_vars($objVariants);

为了从对象中排除特定属性,您可以这样做:

$arrVariants = get_object_vars($objVariants);
// array containing object properties to exclude
$exclude = array('name');
// walk over array and unset keys located in the exclude array
array_walk($arrVariants, function($val,$key) use(&$arrVariants, $exclude) {
if(in_array($key, $exclude)) {
unset($arrVariants[$key]);
}
});

关于php - 从未知对象属性构建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8974388/

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