#php #arrays
#php #массивы
Вопрос:
У меня есть 2 массива, и я хочу создать 3-й массив после сравнения 2 массивов. Код выглядит следующим образом:
foreach($allrsltntcatg as $alltests)
{
foreach($alltests as $test)
{
foreach($allCatgs as $catg)
{
if($catg['testcategoryid'] == $test['testcategory_testcategoryid'])
{
$catcounts[$catg['testcategoryname']] =1;
}
}
}
}
Он, хотя и возвращает правильный ответ, также генерирует ошибку PHP с указанием неопределенного индекса и выводит все ошибки, а также правильный ответ.
Я просто хочу избежать ошибки выхода массива из привязки. Пожалуйста, помогите мне
Комментарии:
1. покажите свой массив
2. «У меня есть три двух массивов».
3. Когда массив пытается добавить некоторую арифметическую операцию с неопределенным индексом, например,
$catg['testcategoryname']
в$catcounts
массиве, тогда генерируется предупреждение. Прежде чем добавлять число, вы должны проверить, присутствует индекс или нет, а затем просто присвоить значение, иначе добавьте в него.4. На самом деле есть два массива.
5. просто используйте ISSET, чтобы проверить, является ли значение isset или нет
Ответ №1:
Проблема в том, что условие if правильное, как показано ниже: сначала вам нужно инициализировать массив, а затем вы можете увеличить значение
if($catg['testcategoryid'] == $test['testcategory_testcategoryid'])
{
if (isset($catcounts[$catg['testcategoryname']]))
$catcounts[$catg['testcategoryname']] =1;
else
$catcounts[$catg['testcategoryname']] =1;
}
Комментарии:
1. Добро пожаловать. Пожалуйста, примите этот ответ как правильный 🙂
Ответ №2:
Когда массив пытается добавить некоторую арифметическую операцию с неопределенным индексом, например, $catg['testcategoryname']
в $catcounts
массиве, тогда генерируется предупреждение. Прежде чем добавлять число, вы должны проверить, присутствует индекс или нет, а затем просто присвоить значение, иначе добавьте в него.
Так что делайте это таким образом, только если условие-
if(....){
if(array_key_exists($catg['testcategoryname'], $catcounts))
$catcounts[$catg['testcategoryname']] =1; // Add into it
else
$catcounts[$catg['testcategoryname']] = 1; // Assign only
}
Подробнее о существовании ключа массива — Смотрите больше
Ответ №3:
$catg['testcategoryname']
должен представлять индекс в $catcounts
массиве.