0
私はforループの中にクエリを持っており、すべての配列要素の製品名を取得しています。今、私の配列のすべての要素で、私は同じshipping_idですべての製品名を連結したいIDを持っています。値を持つid
:クエリループ内で同じIDを持つ文字列concat配列を作成する
アレイ名:
$first = true;
$temp_ship_id = "";
$product_list = "";
foreach ($ids as $product) {
$productname = $this->getproductname($product[0][product_id]);
// if($first) {
// $temp_ship_id = $product[0][shipping_id];
// $first = false;
// }
// if($product[0][shipping_id] == $temp_ship_id) {
// $product_list .= $productname.";
// } else {
// $product_list .= $productname.";
// //$product_list = "";
// $temp_ship_id = $product[0]->shipping_id;
// }
}
public function getproductname($product_id) {
$product = DB::table('products')->select('product_name')
->where(['products.product_id'=>$product_id])
->first();
return $product->product_name;
}
何午前:
Array
(
[0] => Array
(
[product_id] => 1
[shipping_id] => 1
)
[1] => Array
(
[product_id] => 2
[shipping_id] => 1
)
[2] => Array
(
[product_id] => 1
[shipping_id] => 2
)
)
は今、私はこれらを使用してこのコードを作ったここ
私は、これらのような値を持つ私の配列を持っています私はやっている、私は最初の船積みのIDを取得し、それを格納していると私は条件を作った場合は、私はconcat製品名を行くが、私は私のロジックが悪い参照してください。
他の方法でお手伝いしてください。次のようなコード行を使用してください。
ありがとう私はこれを調整します、私は後で質問があります。 –
あなたの答えは正しいです。私を助けてください。私は私の申し込みに誤りがあります。多分私は論理的に間違っています。私はエラーが定義されていませんオフセット:7 foreach($ idsは$ updateprod){ $ productname = $ this-> updateProductQty($ updateprod [0] - > product_id、$ updateprod [0] - > quantity); $ concat [$ updateprod [0] - > shipping_id]。= '、'。 if(isset($ concat [$ updateprod [0] - shipping_id)))) $ productname; } else { $ concat [$ updateprod [0] - > shipping_id]。= $ productname; } } print_r($ concat); –
'$ concat [$ updateprod [0] - > shipping_id] = $ productname;'はあなたの 'else'文で' $ concat [$ updateprod [0] - > shipping_id] = $ productnameです。 'あなたは余分な' .'を持っています。 – Erik