打印出来的数组:
<code>Array
(
[0] => Array
(
[name] => 第一章
[cname] => 1 雅典娜的圣斗士
)
[1] => Array
(
[name] => 第一章
[cname] => 2 燃烧吧。。。
)
)</code>foreach($k as $v){} 输出的时候,发现第一章也跟着循环
立即学习“PHP免费学习笔记(深入)”;
<code>第一章 1雅典娜的圣斗士 第一章 2 燃烧吧。。。</code>
如何做到 第一章这个字段只循环1次呢?
<code>第一章 1雅典娜的圣斗士
2 燃烧吧。。。</code><code>Array
(
[0] => Array
(
[name] => 第一章
[0] => Array(
[cname] => 1 雅典娜的圣斗士
)
[1] => Array(
[cname] => 2 燃烧吧
)
)
)</code>打印出来的数组:
<code>Array
(
[0] => Array
(
[name] => 第一章
[cname] => 1 雅典娜的圣斗士
)
[1] => Array
(
[name] => 第一章
[cname] => 2 燃烧吧。。。
)
)</code>foreach($k as $v){} 输出的时候,发现第一章也跟着循环
立即学习“PHP免费学习笔记(深入)”;
<code>第一章 1雅典娜的圣斗士 第一章 2 燃烧吧。。。</code>
如何做到 第一章这个字段只循环1次呢?
<code>第一章 1雅典娜的圣斗士
2 燃烧吧。。。</code><code>Array
(
[0] => Array
(
[name] => 第一章
[0] => Array(
[cname] => 1 雅典娜的圣斗士
)
[1] => Array(
[cname] => 2 燃烧吧
)
)
)</code>
<code class="php"><?php
$a = [
['name' => '第一章', 'cname' => '1 雅典娜的圣斗士'],
['name' => '第一章', 'cname' => '2 燃烧吧'],
['name' => '第二章', 'cname' => '1 燃烧吧'],
['name' => '第二章', 'cname' => '2 小宇宙'],
];
$result = [];
foreach ($a as $chap) {
$name = $chap['name'];
if (!isset($result[$name])) {
$result[$name] = [];
}
$result[$name][] = $chap['cname'];
}
print_r($result);</code>output:
iOS多线程编程对于iOS开发初学者来说,总是会觉得很难理解和掌握,现在通过几个实例来更加系统全面的理解iOS多线程编程,希望对大家有所帮助。 有些程序是一条直线,起点到终点;有些程序是一个圆,不断循环,直到将它切断。直线的如简单的Hello World,运行打印完,它的生命周期便结束了,像昙花一现那样;圆如操作系统,一直运行直到你关机。 一个运行着的程序就是一个进程或者叫做一个任务,一个进程至少包含一个线程,线程就是程序的执行流。Mac和iOS中的程序启动,创建好一个进程的同时,一个线程便开始运行,
0
<code>Array
(
[第一章] => Array
(
[0] => 1 雅典娜的圣斗士
[1] => 2 燃烧吧
)
[第二章] => Array
(
[0] => 1 燃烧吧
[1] => 2 小宇宙
)
)</code>修改为完全符合题主输出的答案
<code><?php
$a = [
['name' => '第一章', 'cname' => '1 雅典娜的圣斗士'],
['name' => '第一章', 'cname' => '2 燃烧吧'],
['name' => '第二章', 'cname' => '1 燃烧吧'],
['name' => '第二章', 'cname' => '2 小宇宙'],
];
$result = [];
$nameMap = [];
foreach ($a as $chap) {
$name = $chap['name'];
if (!isset($nameMap[$name])) {
$id = count($nameMap);
$nameMap[$name] = $id;
} else {
$id = $nameMap[$name];
}
if (!isset($result[$id])) {
$result[$id] = [];
$result[$id]['name'] = $name;
}
$result[$id][] = ['cname' => $chap['cname']];
}
print_r($result);</code>output
<code>Array
(
[0] => Array
(
[name] => 第一章
[0] => Array
(
[cname] => 1 雅典娜的圣斗士
)
[1] => Array
(
[cname] => 2 燃烧吧
)
)
[1] => Array
(
[name] => 第二章
[0] => Array
(
[cname] => 1 燃烧吧
)
[1] => Array
(
[cname] => 2 小宇宙
)
)
)</code>
燃烧吧应该是雅典娜圣斗士的子类?
我理解的意思是:一个结构中存放章节序号和章节名,遍历整个列表,相同章节序号只输出一次。
提供个思路,记录上一次的name,遍历数组元素,每次拿出一个元素的时候比较该元素的name字段和上一次的name是否一样,一样不输出,否则输出并记录,以下是不算标准伪代码的伪代码:
<code>string lastName = "";
foreach(node in list)
{
if (lastName != node.name)
{
print(node.name);
lastName = node.name
}
else
{}
print(node.cname);
}</code>由于题目改过了:
新的:
<code>foreach (node in chaList)
{
print(name);
foreach (sec in secList)
{
print(cname);
}
}</code>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号