我将对象推入数组时遇到问题。
这是我的对象
Products Object
(
[id] =>
[title] => Titel
[articlenumber] => Artikelnummer
[price] => Prijs
[sale_price] => Sale Prijs
[description] => Tekst
[views] => 1
[brand] => Merk
[soled] => 0
[start_date] => 2011-04-21
[end_date] => 2011-04-28
[active] => 2
[sale_text] => Sale Tekst
)
这是我的数组,我试图将所有内容都推送到数组
Array
(
[0] => title, Titel
[1] => articlenumber, Artikelnummer
[2] => price, Prijs
[3] => sale_price, Sale Prijs
[4] => description, Tekst
[5] => views, 1
[6] => brand, Merk
)
正如你可以看到我的代码在他来到“soled”项目时停止,它会这样做,因为值为0.当我把这个值放到别的东西时工作正常。
以下是我正在使用的代码。
$value = array();
while (next($Product)) {
$constant = key($Product);
array_push($value, $constant.", ".$Product->$constant);
echo $constant."<br>";
}
答案 0 :(得分:1)
我不知道你的确切需求,但值得尝试一个简单的演员阵容。
$value = (array) $Product;
你的cvrrent方法的问题似乎是零评估为假,我认为严格的比较应该解决这个问题。
$value = array();
while (next($Product) !== false) {
$constant = key($Product);
array_push($value, $constant.", ".$Product->$constant);
echo $constant."<br>";
}
另一个答案中的foreach
无论如何都可能是一个更好的主意,但是如果您因为某种原因而更喜欢while循环,则需要注意该零点的比较。
答案 1 :(得分:1)
使用foreach循环可能是一个更好的主意,在这种情况下:
$value = array();
foreach($obj as $key => $val)
{
array_push($value, sprintf("%s, %s", $key, $val));
}