PHP xóa khóa khỏi mảng đa chiều

Như tôi đã làm, nó chỉ xóa phần tử khỏi mảng 'img', nhưng tôi cũng muốn xóa dữ liệu liên quan khỏi các mảng khác

 

Ai có thể cho tôi biết làm thế nào để làm điều này?

 

Cảm ơn bạn

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

requinix

Đăng ngày 22 tháng 5 năm 2018

requinix

  • quản trị viên
    • 14. 5k
    • 300
  • Vị trí. Mỹ/Los_Angeles

    • Chia sẻ

Đăng ngày 22 tháng 5 năm 2018

Ai có thể cho tôi biết làm thế nào để làm điều này?

Bằng cách viết mã để làm điều đó?

 

Mã đã xóa nó khỏi mảng img. Làm cho nó làm điều tương tự với các mảng khác

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Barand

Đăng ngày 22 tháng 5 năm 2018

Barand

  • người điều hành
    • 23. 4k
    • 355
  • Vị trí. Cheshire, Vương quốc Anh
  • Tuổi. 73
  • quyên góp cho tôi

    • Chia sẻ

Đăng ngày 22 tháng 5 năm 2018

Ý bạn là vậy đúng không

$delkey = $_POST['key'];
  if[in_array[$delkey, $_SESSION['other-image']['img']]]{
      $imgkey = array_search[$delkey, $_SESSION['other-image']['img']];
      if[$imgkey] {
          foreach [['img', 'path', 'type', 'thumb'] as $sub] {
              unset[$_SESSION['other-image'][$sub][$imgkey]];
          }
      }
      //file path
      $fp = UPLOAD_DIR.$nextId."/".$delkey;
      unlink[$fp];  
  }
  

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

thara

Đăng ngày 22 tháng 5 năm 2018

thara

  • Các thành viên
    • 604
  • Vị trí. gấu trúc

  • Tác giả

    • Chia sẻ

Đăng ngày 22 tháng 5 năm 2018

 

Ý bạn là vậy đúng không

$delkey = $_POST['key'];
  if[in_array[$delkey, $_SESSION['other-image']['img']]]{
      $imgkey = array_search[$delkey, $_SESSION['other-image']['img']];
      if[$imgkey] {
          foreach [['img', 'path', 'type', 'thumb'] as $sub] {
              unset[$_SESSION['other-image'][$sub][$imgkey]];
          }
      }
      //file path
      $fp = UPLOAD_DIR.$nextId."/".$delkey;
      unlink[$fp];  
  }
  

 

Vâng thưa ngài. nó chính xác là những gì tôi cần

 

Bây giờ tôi muốn chèn những dữ liệu này vào mysql. Thưa ông, ông có thể cho tôi biết làm thế nào để làm điều đó?

 

Tôi đã thử một cái gì đó như thế này, nhưng nó không hoạt động

      //Insert other post image:
      if[!empty[$_SESSION['other-image']]] {
        $query = "INSERT INTO post_image [
                                        image_type
                                      , image
                                      , thumb
                                      , image_path
                                      , sort_order
                                      , added_date
                                      ] VALUES [?,?,?,?,?,NOW[]]";
        $stmt = $mysqli->prepare[$query];
        $stmt->bind_param['isssi', $type
                                 , $image
                                 , $thumb
                                 , $path
                                 , $sort_order
                               ];        
        $order=2;
        foreach [$_SESSION['other-image'] as $value] {
          foreach [$value as $v] {
            $type = $_SESSION['other-image']['type'][$v]]
            $image = $_SESSION['other-image']['img'][$v]]
            $thumb = $_SESSION['other-image']['thumb'][$v]]
            $path = $_SESSION['other-image']['path'][$v]]
            $sort_order = $order;
            $stmt->execute[];  
          }
          
          ++$order;  
        }
      }

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

  • Giải pháp

Barand

Đăng ngày 22 tháng 5 năm 2018

Barand

  • người điều hành
    • 23. 4k
    • 355
  • Vị trí. Cheshire, Vương quốc Anh
  • Tuổi. 73
  • quyên góp cho tôi

  • Giải pháp

    • Chia sẻ

Đăng ngày 22 tháng 5 năm 2018

Sắp xếp lại mảng để bạn tập hợp các giá trị cho từng bản ghi lại với nhau

$other_image = Array
  [
    'img' => Array
        [
            '0' => '1526973657.jpg',
            '1' => '1526973661.jpg',
            '2' => '1526973665.jpg'
        ],

    'path' => Array
        [
            '0' => '../post-upload/1/',
            '1' => '../post-upload/1/',
            '2' => '../post-upload/1/'
        ],

    'type' => Array
        [
            '0' => 1,
            '1' => 1,
            '2' => 1
        ],

    'thumb' => Array
        [
            '0' => 'thumb_1526973661.jpg',
            '1' => 'thumb_1526973665.jpg',
            '2' => 'thumb_1526973668.jpg'
        ]

  ];

$record_vals = [];         // values for each record to be inserted

foreach [$other_image as $name => $values] {
    foreach [$values as $k => $v] {
        $record_vals[$k][$name] = $v;
    }
}

Bây giờ bạn có một mảng mà bạn có thể lặp qua để chèn các bản ghi

$record_vals = Array
[
    [0] => Array
        [
            [img] => 1526973657.jpg
            [path] => ../post-upload/1/
            [type] => 1
            [thumb] => thumb_1526973661.jpg
        ]

    [1] => Array
        [
            [img] => 1526973661.jpg
            [path] => ../post-upload/1/
            [type] => 1
            [thumb] => thumb_1526973665.jpg
        ]

    [2] => Array
        [
            [img] => 1526973665.jpg
            [path] => ../post-upload/1/
            [type] => 1
            [thumb] => thumb_1526973668.jpg
        ]

]

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

thara

Đăng ngày 22 tháng 5 năm 2018

thara

  • Các thành viên
    • 604
  • Vị trí. gấu trúc

  • Tác giả

    • Chia sẻ

Đăng ngày 22 tháng 5 năm 2018

Thầy ơi em đã thử cách này

      //Insert other post image:
      if[!empty[$_SESSION['other-image']]] {
        $record_vals = [];

        foreach [$other_image as $name => $values] {
          foreach [$values as $k => $v] {
            $record_vals[$k][$name] = $v;
          }
        }

        $query = "INSERT INTO post_image [
                                        image_type
                                      , image
                                      , thumb
                                      , image_path
                                      , sort_order
                                      , added_date
                                      ] VALUES [?,?,?,?,?,NOW[]]";
        $stmt = $mysqli->prepare[$query];
        $stmt->bind_param['isssi', $type
                                 , $image
                                 , $thumb
                                 , $path
                                 , $sort_order
                               ];        
        $order=2;
        foreach [$record_vals as $k = > $v] {
          foreach [$v as $column => $value] {
            $image = $record_vals[$k]['img'][$value];
            $path  = $record_vals[$k]['path'][$value];
            $type  = $record_vals[$k]['type'][$value];
            $thumb = $record_vals[$k]['thumb'][$value];
            $sort_order = $order;
            $stmt->execute[];  
          }
          ++$order;  
        }
      }

Bạn có thể cho tôi biết lỗi tôi đã làm là gì không?

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Barand

Đăng ngày 22 tháng 5 năm 2018

Barand

  • người điều hành
    • 23. 4k
    • 355
  • Vị trí. Cheshire, Vương quốc Anh
  • Tuổi. 73
  • quyên góp cho tôi

    • Chia sẻ

Đăng ngày 22 tháng 5 năm 2018

Để thử nghiệm, tôi đã tạo một mảng $other_image . Của bạn là trong một biến phiên.

 

Đừng chỉ sao chép và dán mà không đọc mã

 

Đối với việc xử lý mảng record_vals - kiểm tra cấu trúc. Bạn đang làm phức tạp hóa nó lên rất nhiều,

$sort_order = 2;
foreach [$record_vals as $rec] {
    $image = $rec['img'];
    $path = $rec['path'];
    $type = $rec['type'];
    $thumb = $rec['thumb'];
    
    $stmt->execute[];
}

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Barand

Đăng ngày 23 tháng 5 năm 2018

Barand

  • người điều hành
    • 23. 4k
    • 355
  • Vị trí. Cheshire, Vương quốc Anh
  • Tuổi. 73
  • quyên góp cho tôi

    • Chia sẻ

Đăng ngày 23 tháng 5 năm 2018

Tái bút

Tôi đã cung cấp cho bạn cách tiếp cận đó để tránh cung cấp cho bạn giải pháp hoàn chỉnh nhưng vẫn giữ cho bước tiếp theo đơn giản nhất có thể đối với bạn

Làm cách nào để xóa khóa khỏi mảng đa chiều trong PHP?

Sử dụng hàm unset[] . Hàm unset[] dùng để xóa phần tử khỏi mảng. Hàm unset được sử dụng để hủy bất kỳ biến nào khác và sử dụng tương tự để xóa bất kỳ phần tử nào của một mảng. Lệnh bỏ đặt này lấy khóa mảng làm đầu vào và xóa phần tử đó khỏi mảng.

Làm cách nào để xóa khóa và giá trị khỏi mảng đa chiều trong PHP?

Chúng ta có thể xóa một phần tử khỏi mảng bằng cách dùng lệnh unset . Lệnh bỏ đặt này lấy khóa mảng làm đầu vào và xóa phần tử đó khỏi mảng.

Làm cách nào để xóa mảng nhiều chiều trong PHP?

Sử dụng hàm array_map[] với lệnh gọi lại array_filter để lọc từng mảng trong mảng đa chiều . Sử dụng cả hai hàm, bạn có thể dễ dàng loại bỏ các phần tử trống khỏi mảng nhiều chiều trong PHP. Hàm array_map[] gửi các phần tử của mảng tới hàm gọi lại.

Làm cách nào để xóa khóa mảng không xác định trong PHP?

Nó có thể hiển thị cảnh báo khóa mảng không xác định đối với một số. Điều đó có nghĩa giống như việc bạn đang cố truy cập vào một khóa mảng không xác định. Nó có thể được giải quyết tương tự như hai trường hợp trước bằng cách sử dụng hàm isset[], arrayexists[] hoặc empty[] .

Chủ Đề