2017-03-09 4 views
0

ich mich gefragt, ob ich Array-Elemente in zwei oder mehr verschiedenen Arrays unterscheiden kann, wie ich ein Array $product_optionserstellen Array mit denselben Elementen aus einem Array in PHP

$product_options: [ 
    { 
     "option_id": "4", 
     "title": "Color", 
     "value_id": "10", 
     "value_title": "Red", 
     "price": "12.0000" 
    }, 
    { 
     "option_id": "4", 
     "title": "Color", 
     "value_id": "11", 
     "value_title": "Green", 
     "price": "13.0000" 
    }, 
    { 
     "option_id": "3", 
     "title": "Size", 
     "value_id": "7", 
     "value_title": "S", 
     "price": "12.0000" 
    }, 
    { 
     "option_id": "3", 
     "title": "Size", 
     "value_id": "8", 
     "value_title": "M", 
     "price": "13.0000" 
    } 
    ] 

So in der obigen Anordnung i vier habe Elemente mit zwei identischen Elementen. Ich möchte diese zwei identischen Elemente in zwei Arrays aufteilen. gewünschte Ausgabe:

$product_options:[ 
[{ 
     "option_id": "4", 
     "title": "Color", 
     "value_id": "10", 
     "value_title": "Red", 
     "price": "12.0000" 
    }, 
    { 
     "option_id": "4", 
     "title": "Color", 
     "value_id": "11", 
     "value_title": "Green", 
     "price": "13.0000" 
    }], 
[{ 
     "option_id": "3", 
     "title": "Size", 
     "value_id": "7", 
     "value_title": "S", 
     "price": "12.0000" 
    }, 
    { 
     "option_id": "3", 
     "title": "Size", 
     "value_id": "8", 
     "value_title": "M", 
     "price": "13.0000" 
    }] 
] 

P. S Mein Code ist im JSON-Format, aber meine Frage ist nur in PHP.

+0

Update Ihre Frage mit dem gewünschten Ausgang –

+0

über Ihre Frage etwas mehr Erklärung benötigen. – prudhvi259

+1

Dieser sieht überhaupt nicht wie PHP aus. Mehr wie JSON oder so. – akond

Antwort

0

versuchen, diese

$data = array(); 
    foreach($product_options as $key => $value) { 
     if(!key_exists($value["option_id"], $data)) { 
      $data[$value["option_id"]] = array($value); 
     } 
     else { 
      $array = $data[$value["option_id"]]; 
      $array[] = $value; 
      $data[$value["option_id"]] = $array; 
     } 
    } 
    print_r($data); 

    $final = array(); 
    foreach($data as $key => $value) { 
    $final[] = $value; 
} 
echo json_encode($final); 
0
$groupedProductOptions = []; 

foreach($product_options as $productOption) { 
    $optionId = $productOption->option_id; 

    if (!array_key_exists($optionId)) { 
     $result[$optionId] = []; 
    } 

    $groupedProductOptions[$optionId][] = $productOption; 
} 
+1

Während dieses Code-Snippet kann die Frage lösen, [einschließlich einer Erklärung] (http://meta.stackexchange.com/questions/114762/Erklären-vollständig-Code-basierte Antworten) hilft wirklich, die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. – DimaSan

Verwandte Themen