1

i am trying to remove "afterpaypayovertime" key value from the below array. i will check for some condition & remove it based on it. Is their any way we can do this ?

$paymentMethods = $paymentInformation->getPaymentMethods();
$paymentMethodsData = [];
            foreach ($paymentMethods as $paymentMethod) {
                $paymentMethodsData[] = [
                    'title' => $paymentMethod->getTitle(),
                    'code' => $paymentMethod->getCode(),
                ];
            }



// Output of $paymentMethodsData
    $paymentMethodsData = array (
          0 => 
          array (
            'title' => 'Afterpay',
            'code' => 'afterpaypayovertime',
          ),
          1 => 
          array (
            'title' => 'PayPal Credit (Paypal Express Bml)',
            'code' => 'paypal_express_bml',
          ),
          2 => 
          array (
            'title' => 'PayPal Express Checkout',
            'code' => 'paypal_express',
          ),
          3 => 
          array (
            'title' => 'Cash On Delivery',
            'code' => 'cashondelivery',
          ),
          4 => 
          array (
            'title' => 'Pay by Card (Stripe)',
            'code' => 'stripe_payments',
          ),
        );
  • I have tried these answers - https://stackoverflow.com/questions/7225070/php-array-delete-by-value-not-key but did not work for me. –  Jun 14 '21 at 12:55
  • That question is about 1-dimensional arrays, not 2-dimensional. – Barmar Jun 14 '21 at 13:05

1 Answers1

0

This will do it

$deleteKey = false;
foreach($array as $key => $value) {
    if($value['code'] === 'afterpaypayovertime') {
        $deleteKey = $key;
        break;
    }
}

if($deleteKey !== false) unset($array[$deleteKey]);
AidOnline01
  • 712
  • 7
  • 19