Php 数组推送问题
我在将对象推入数组时遇到问题 这是我的目标Php 数组推送问题,php,arrays,array-push,Php,Arrays,Array Push,我在将对象推入数组时遇到问题 这是我的目标 Products Object ( [id] => [title] => Titel [articlenumber] => Artikelnummer [price] => Prijs [sale_price] => Sale Prijs [description] => Tekst [views] => 1 [brand] => Merk
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>";
}
$value=array();
while(下一个($产品)){
$constant=键($Product);
数组推送($value,$constant.,“$Product->$constant);
回声$constant.“
”;
}
我不知道您的确切需求,但值得尝试一个简单的数组转换
$value = (array) $Product;
你的cvrrent方法的问题似乎是零评估为假,我认为一个严格的比较应该解决这个问题
$value = array();
while (next($Product) !== false) {
$constant = key($Product);
array_push($value, $constant.", ".$Product->$constant);
echo $constant."<br>";
}
$value=array();
while(下一个($Product)!==false){
$constant=键($Product);
数组推送($value,$constant.,“$Product->$constant);
回声$constant.“
”;
}
另一个答案中的
foreach
可能是一个更好的主意,但如果出于任何原因您更喜欢while循环,则需要注意该零点上的比较。在这种情况下,使用foreach循环可能是一个更好的主意:
$value = array();
foreach($obj as $key => $val)
{
array_push($value, sprintf("%s, %s", $key, $val));
}