簡體   English   中英

如何刪除花括號和 user_cart 字符串

[英]how to remove the curly braces and user_cart string

public function addToCart($id){

$course = Course::findOrfail($id); 

$user =Auth::user();

$cart_array = array();

$cart = $user->user_cart;
if ($cart == '') {
  array_push($cart_array, array('user_cart' => $course->id));
  // print_r($cart_array);
    } else {
        $founder = false;
        $cart_array = json_decode($cart, true);
        for ($i = 0; $i < count($cart_array); $i++) {
            $cart_for_eacch_course = $cart_array[$i];
            if ($cart_for_eacch_course['user_cart'] == $course->id) {
                $founder = true;
            }
        }
      if (!$founder) {
    array_push($cart_array, array('user_cart' => $course->id));
  }
    }


$data['user_cart'] = json_encode($cart_array);

$update = User::where('id',$user->id)->update(['user_cart'=> $cart_array]);

當前Output

[{"user_cart":86},{"user_cart":84}]

預計 Output

[84,86]

現在我有當前的 Output 但我想要一個。 我嘗試刪除 json_encode 但它對我不起作用。

您可以像這樣使用array_column()

$new_array = array_column($cart_array, 'user_cart');

當您創建 output 陣列時,您正在使用...

array_push($cart_array, array('user_cart' => $course->id));

這就是為什么你得到帶有鑰匙的子 arrays 的原因。 如果您只是添加$course->id值,那么這應該首先構建 output 而不必進一步處理它......

$cart_array[] = $course->id;

您還需要更改線路

if ($cart_for_eacch_course['user_cart'] == $course->id) {

if ($cart_for_eacch_course == $course->id) {

因為您不再擁有子索引。 您可以將這部分代碼更改為使用in_array() ,這也會更短。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM