проблема толчка массива - PullRequest
0 голосов
/ 07 апреля 2011

У меня проблема с помещением объекта в массив.

Вот мой объект

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>";
        }

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

Лучше использовать цикл foreach, в этом случае:

$value = array();
foreach($obj as $key => $val)
{
  array_push($value, sprintf("%s, %s", $key, $val));
}
1 голос
/ 07 апреля 2011

Я не знаю ваших точных потребностей, но стоит попробовать простое приведение к массиву.

$value = (array) $Product;

Проблема с вашим cvrrent-подходом, по-видимому, заключается в том, что оценка равна нулю, и я думаю, что при строгом сравнении это нужно исправить.

    $value = array();

    while (next($Product) !== false) {
        $constant = key($Product);  
        array_push($value, $constant.", ".$Product->$constant);         
        echo $constant."<br>";
    }

В любом случае foreach в другом ответе, вероятно, является лучшей идеей, но если по какой-либо причине вы предпочитаете цикл while, вам нужно следить за сравнением по этому нулю.

...