У меня есть массив из 3 столбцов, в котором у меня есть второй столбец, который является массивом в php. Второй столбец, который представляет собой массив, может иметь 2-6 строк.
Я помещаю данные в массив с ключом с приведенным ниже кодом
$data_array = array( 'name' =>$name, 'category_name'=>$category_name, 'url'=>$url );
Второй столбец $ category_name в вышеперечисленном $ data_array представляет собой массив, который имеет такие данные, как ниже
$category_name = array("India", "USA", "UK");
Я хочу повторить данные в следующем формате и в конечном итоге добавить базу данных mysql
'Jim' 'India' 'www.google.com' 'Jim' 'USA' 'www.google.com' 'Jim' 'UK' 'www.google.com' 'John' 'India' 'www.yahoo.com' 'John' 'USA' 'www.yahoo.com' 'John' 'UK' 'www.yahoo.com'
Если вы заметили, что первая и третья строки остаются такими же, а вторая строка изменяется в соответствии с данными в массиве category_name
Я пытаюсь использовать приведенный ниже код для достижения этого, но я не получаю никакого вывода
for($i=0;$i<count($NPR);$i++){ for($j=0;$j<count($NPR[$i]['category_name'][j]);$j++){ echo "'".$NPR[$i]['name']."'<br>"; echo "'".$NPR[$i]['category_name'][j]."'<br>"; echo "'".$NPR[$i]['url']."'<br>"; } }
Он должен быть count($NPR[$i]['category_name'])
, вы добавили ненужный [j]
в конце этого.
Но все было бы проще, если бы вы использовали foreach
foreach ($NPR as $item) { foreach ($item['category_name'] AS $cat) { echo "'{$item['name']}'<br>"; echo "'$cat'<br>"; echo "'{$item['url']}'<br>"; } }
Убедитесь, что сообщение об ошибках включено, когда вы отлаживаете код. [j]
должно было выдать предупреждение.