سؤال

وأنا بحاجة الى التحقق ما إذا كانت مجموعة معينة سوف تتطابق مع مجموعة أخرى. أنا لا يمكن معرفة كيف إما لمعالجة مجموعة الأولى، أو إلى تطابق ذلك بطريقة أخرى.

وأحتاج لمطابقة هذه المجموعة:

    Array
(
    [1] => site
    [2] => blog
    [3] => index.php
)

ولمطابقة هذه:

Array
(
    [site] => Array
        (
            [path] => site
            [name] => site
            [kind] => directory
            [content] => Array
                (
                    [404] => Array
                        (
                            [path] => site/404.php
                            [name] => 404.php
                            [extension] => php
                            [kind] => file
                        )

                    [blog] => Array
                        (
                            [path] => site/blog
                            [name] => blog
                            [kind] => directory
                            [content] => Array
                                (
                                    [contact] => Array
                                        (
                                            [path] => site/blog/contact.php
                                            [name] => contact.php
                                            [extension] => php
                                            [kind] => file
                                        )

                                    [index] => Array
                                        (
                                            [path] => site/blog/index.php
                                            [name] => index.php
                                            [extension] => php
                                            [kind] => file
                                        )

                                    [about] => Array
                                        (
                                            [path] => site/blog/about.php
                                            [name] => about.php
                                            [extension] => php
                                            [kind] => file
                                        )

                                )

                        )

                    [index] => Array
                        (
                            [path] => site/index.php
                            [name] => index.php
                            [extension] => php
                            [kind] => file
                        )

                )

        )

)

وعودة مجموعة محتوى الملف:

                            [index] => Array
                                (
                                    [path] => site/blog/index.php
                                    [name] => index.php
                                    [extension] => php
                                    [kind] => file
                                )

مساعدة سيكون موضع تقدير كبير!

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

المحلول

ومؤشر فقط إلى مجموعة:

$b[$a[1]]['content'][$a[2]]['content'][str_replace('.php', '', $a[3])]

إذا المدخلات الخاصة بك يمكن أن يكون طول متغير، القيام بذلك في حلقة بدلا من ذلك.

نصائح أخرى

ولذا عليك ...

$array2[$array[1]][content][$array[2]][substr(0, stripos($array[3], "."), $array[3])]

وأو شيء قريب ...

هل يمكنني أن تأخذ على أنها تعني أنك تريد التحقق من أن قائمة الفهارس في مجموعة أكبر والعودة أية نتائج متاحة / مطابقة؟ إذا كان الأمر كذلك، وعلى افتراض مجموعة الأولى يسمى $indexes ويسمى الثاني $results يمكن أن تفعله:

$found = array();
foreach($indexes as $index) {
  if(isset($results[$index])) {
    $found[] = $results[$index]['content'];
  }
}

والآن كنت قد $found مع قائمة من كافة إدخالات المحتوى الموجود في $ النتائج التي تطابق الأرقام القياسية في $ الفهارس. على أمل أن يساعد.

$path = array('site', 'blog', 'index.php');
$node = array(...);  // the tree

for ($i = 0; $i < count($path) && !is_null($node); ++$i) {
  $p = $path[$i];
  $items = $i ? $node['content'] : $node;
  $n = null;
  foreach ($items as $it) {
    if ($it['name'] == $p) {
      $n = $node['content'][$p];
      break;
    }
  }
  $node = $n;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top