PHP5: إضافة مادة إلى مجموعة متعددة الأبعاد إعطاء موقع أي طول؟

StackOverflow https://stackoverflow.com/questions/1629862

سؤال

و// نظرا التالية مجموعة:

$data = array(
  0=>array(
    "data"=>"object1",
    "col"=>array(
      0=>array(
        "data"=>"object2", 
        "col"=>array(
          0=>array(
            "data"=>"object3",
          ),
          1=>array(
            "data"=>"object4",
          ),
        )
      ),
      1=>array(
        "data"=>"object5", 
        "col"=>array()
      ),
    )
  )
);

و// كائن جديد يمكن إضافة أو القائمة واحد حل محل إعطاء موقف من أي طول // مجموعة (0)، (1،0) مجموعة (1،0،0) مجموعة، الخ ...

$data = add($data, array(0,0,1), "new_object");

function add($data, $position, $object) {
  // this has to be produced based the location:
  $data[0]["col"][0]["col"][1]["data"] = "new_object";
  return $data;
}

هل هناك طريقة سليمة للقيام بذلك في PHP بالإضافة إلى خلق $data."[0]["col"][0]["col"][1]["data"]"؟

هل كانت مفيدة؟

المحلول

ويجب أن يكون هناك بنية بيانات أفضل من ذلك مجموعة متشابكة. 6 أبعاد هي كثيرة جدا في معظم الحالات. يبدو أن هناك من بعض هيكل المتكررة هناك. ربما يمكنك الاستفادة من ذلك؟ ليس هناك طريقة "عاقل"، كما يمكنك وضعه، للوصول إلى مجموعة واسعة مجنون.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top