📜  laravel eloquent 到数组键值 - PHP (1)

📅  最后修改于: 2023-12-03 15:17:12.526000             🧑  作者: Mango

Laravel Eloquent到数组键值 - PHP

当使用Laravel中的Eloquent ORM时,您可能会想将结果转换为数组形式,以便更轻松地处理和输出。本文将介绍如何将Eloquent结果转换为数组键值形式。

转换为数组键值形式

使用toArray()方法可将Eloquent结果转换为数组形式。但是,默认情况下,它返回的只是对象属性数组,而不是键值对数组。

在下面的例子中,我们将使用Product模型来演示如何将结果转换为数组键值对形式。假设我们有一个products表,其中包含idnameprice三个字段。

use App\Models\Product;

$products = Product::all();

// 转换为数组
$productsArray = $products->toArray();

dd($productsArray);

该代码将输出以下内容:

array:2 [
  0 => array:3 [
    "id" => 1
    "name" => "Product 1"
    "price" => 10.0
  ]
  1 => array:3 [
    "id" => 2
    "name" => "Product 2"
    "price" => 20.0
  ]
]

可以看到,结果只是一个属性数组,其中每个元素都是一个对象属性数组。

现在,我们将演示如何将结果转换为键值对数组。我们可以使用pluck()方法来选择要使用的键和值。

$productsKVArray = $products->pluck('price', 'name')->toArray();

dd($productsKVArray);

该代码将输出以下内容:

array:2 [
  "Product 1" => 10.0
  "Product 2" => 20.0
]

在上面的代码中,我们使用pluck()方法来选择name属性作为键和price属性作为值。然后,我们使用toArray()方法将结果转换为数组。

结论

通过使用pluck()toArray()方法,可以轻松地将Eloquent结果转换为数组形式,并选择要使用的键和值。这使得进一步处理和输出结果变得更加容易。