Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 12.12.2012
Сообщений: 45

Массив: Найти совпадения в ключах и как-то объединить их.

18.03.2016, 13:14. Показов 1964. Ответов 5

Студворк — интернет-сервис помощи студентам
Есть многомерный массив:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$arr = array(
'test.txt' => Array
        (
            'тестовый текст' => Array
                (
                    0 => 58
                )
 
            'бла бла бла' => Array
                (
                    0 => 59
                )
        )
 
    'test2.txt' => Array
        (
            'сушка' => Array
                (
                    0 => 7
                )
 
             'тестовый текст' => Array
                (
                    0 => 8,
                    1 => 18
                )
        )
);
Нужно найти совпадения в ключах и как то объединить их. На выходе должно получится такое:
test.txt:58 test2.txt:8 test2.txt:18
тестовый текст

test.txt:59
бла бла бла

test2.txt:7
сушка


Начал юзать array_search, но безрезультатно(
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
foreach($arr as $file_name => $content ) 
    {
        foreach($content as $key => $val)
        {
            $find = array_search($key , $arr);
            if($find === false)
            { 
                echo "no find<br>"; 
            }
            else
            {
                echo "find: ".$find."<br>";
            }   
        }
    }
Подскажите, пож, как решить эту задачку?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2016, 13:14
Ответы с готовыми решениями:

Как собрать все совпадения в массив
Здравствуйте. Проще всего наверно объяснить мой вопрос на парсере... то есть... пусть надо собрать текст всех ссылок на...

Как проверить Get массив на совпадения в базе и создать Куки
здравствуйте как сделать если человек приходит на сайт по реф ссылке проверяем id из Get массива на наличие такого ida в базе если такой...

Как найти процент совпадения 2х строки?
Здравствуйте, подскажите как вычислить процент совпадения двух строк? Берем их из файла или массива не важно. например есть строка...

5
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
18.03.2016, 14:08
Лучший ответ Сообщение было отмечено Wet как решение

Решение

При условии, что ключи подмассивов нам известны:
PHP
1
2
$result = array_merge_recursive($arr['test.txt'], $arr['test2.txt']);
print_r($result);
1
0 / 0 / 1
Регистрация: 12.12.2012
Сообщений: 45
18.03.2016, 14:29  [ТС]
Не помогло(
PHP
1
2
3
4
$ar1 = array ( "test.txt" => array ("text" => array (0 => 33), "text2" => array (0 => 24)) );
$ar2 = array ( "test2.txt" => array ("text3" => array (0 => 21), "text" => array (0 => 55, 1 => 77)) );
$rslt = array_merge_recursive ($ar1, $ar2);
var_export($rslt);
Результат:
array (
'test.txt' =>
array (
'text' =>
array (
0 => 33,
),
'text2' =>
array (
0 => 24,
),
),
'test2.txt' =>
array (
'text3' =>
array (
0 => 21,
),
'text' =>
array (
0 => 55,
1 => 77,
),
),
)
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
18.03.2016, 14:59
создал массив с подмассивами.
Вроде идентично. Работает.
PHP
1
2
3
4
5
6
7
$arr = array(
"test.txt" => array ("text" => array (0 => 33), "text2" => array (0 => 24)),
"test2.txt" => array ("text3" => array (0 => 21), "text" => array (0 => 55, 1 => 77))
);
 
$result = array_merge_recursive($arr['test.txt'], $arr['test2.txt']);
print_r($result);
http://sandbox.onlinephpfuncti... 42aeeec5b4
0
0 / 0 / 1
Регистрация: 12.12.2012
Сообщений: 45
18.03.2016, 15:06  [ТС]
Впринципе можно и этим методом воспользоваться, только придется изменить конструкцию массива.
PHP
1
2
3
4
$ar1 = array ( "text" => array ("test.txt" => array (0 => 33)), "text2" => array ("test.txt" => array (0 => 1)) );
$ar2 = array ( "text3" => array ("test2.txt" => array (0 => 21)), "text" => array ("test2.txt" => array (0 => 55, 1 => 77)) );
$rslt = array_merge_recursive ($ar1, $ar2);
var_export($rslt);
Результат:
array (
'text' =>
array (
'test.txt' =>
array (
0 => 33,
),
'test2.txt' =>
array (
0 => 55,
1 => 77,
),
),
'text2' =>
array (
'test.txt' =>
array (
0 => 1,
),
),
'text3' =>
array (
'test2.txt' =>
array (
0 => 21,
),
),
)

Вселенское спасибо за помощь!
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
18.03.2016, 15:25
Вот так можно объединить 2 массива, если мы НЕ знаем ключей:
PHP
1
2
3
4
5
foreach($arr as $k => $v){
    $arr1[] = $k;
}
$result = array_merge_recursive($arr[$arr1[0]], $arr[$arr1[1]]);
print_r($result);
http://sandbox.onlinephpfuncti... 1b923dd9d5
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2016, 15:25
Помогаю со студенческими работами здесь

Как найти совпадения по двум таблицам и вывести результат в третью?
Здравствуйте. Помогите плз, с екселем не дружусь совсем. Есть две таблицы с ФИО, нужно сравнить их между собой, найти полное совпадения по...

Найти и объединить массив max элементов каждой нечетной строки матрицы
Дан массив D, состоящий из n-строк m-столбцов. Найти и объединить массив max элементов каждой нечетной строки.

Как в ключах массива перед значением (ключа) добавить цифры
Как в ключах массива перед значением (ключа) добавить цифры. Мне нужно сделать, чтобы перед значением ключей выводились даты. ...

как правильно объединить массив объектов
У меня есть вот такой запрос: getCategory() { return forkJoin&lt;any&gt; ( ...

Как объединить объекты формы в массив
Доброго времени суток) Неуверен в постановке вопроса, но суть вот в чем Создаю форму с большим количеством CheckBox-ов(10 строкам,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru