Удалить ключ индекса из массива для доступа к объекту?

#php #arrays #oop #class

#php #массивы #ооп #класс

Вопрос:

Как мне удалить ключ индекса из массива?

Например:

 $getProduct = Product::find($product->ProductID);
  

и структура массива будет выглядеть примерно так:

 Array
(
    [0] => Product Object
        (
            [id] => 26552
            [name] => Product Name One
        )

)
  

Чтобы получить значение name , я должен сделать это:

 echo $getProduct[0]->name;
  

Я хочу получить значение следующим образом:

 echo $getProduct->name;
  

Ответ №1:

 $getProduct = $getProduct[0]; 
  

поместит первый элемент в массиве в его собственную переменную, из которой вы затем сможете получить доступ

 $getProduct->name
  

Однако я бы предложил поместить его в переменную с другим именем, возможно, для удобства чтения вашего кода:

 $product = $getProduct[0];
echo $product->name;
  

Ответ №2:

Чтобы получить желаемое значение, вы должны изменить свой класс «Product» таким образом, чтобы он возвращал вам объект, который вы инициализируете после вызова метода find .

Комментарии:

1. Ну, в классе Product его выборка выглядит следующим образом: $statement->fetchAll(PDO::FETCH_CLASS, 'Product');