- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我是 php 的新手,需要一些帮助。
我有一个 html 表单,当用户可以提交文本时。此文本由 php 处理,如果一行超过 20 个字符,则会发生换行。之后,所有文本都被“分解”了,我得到了一个数组。到目前为止一切顺利。
function hexToStr($hex){
$string='';
for ($i=0; $i < strlen($hex)-1; $i+=2)
{
$string .= chr(hexdec($hex[$i].$hex[$i+1]));
}
return $string;}
$format = $_POST['format'];
$title= strtoupper($_POST['titre']);
$txtcontent = $_POST['texte'];
$txtcontent = wordwrap($txtcontent,20,hexToStr('0D0A'),true);
$txtcontent = explode("\n", $txtcontent);
print_r(array_chunk($txtcontent, 9, false));
$filecontent = implode(array_chunk($txtcontent, 9, false));
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment;filename='.$_POST['titre'].'.'.$format.'');
header('Cache-Control: max-age=0');
//$fh = fopen($filename, 'wb');
$fh = fopen('php://output', 'wb');
fwrite($fh, $filecontent);
fclose($fh);
我正在使用 array_chunk 将数组 $txtcontent 分隔为包含 9 个元素的数组 block 。
现在,我需要根据键值在每个新数组元素的开头和结尾添加一些常量文本。也许我需要做一个循环或类似的东西,我已经尝试了很多次但仍然不能。我需要帮助才能做到这一点。
例子:如果我在网络表单中提交此文本:
line1
line2
line3
line4
line5
line6
line7
line8
line9
line10
line11
line12
我会:
Array ( [0] => Array ( [0] => line1 [1] => line2 [2] => line3 [3] => line4 [4] => line5 [5] => line6 [6] => line7 [7] => line8 [8] => line9 ) [1] => Array ( [0] => line10 [1] => line11 [2] => line12 ) )
这是我需要帮助的地方:
经过处理(加上常量文本后,根据key值),应该是这样的吧。但是我不知道我该怎么做。
Array ( [0] => Array (
[0] => \Text 1,1,"line1"
[1] => \Text 7,1,"line2"
[2] => \Text 13,1,"line3"
[3] => \Text 19,1,"line4"
[4] => \Text 25,1,"line5"
[5] => \Text 31,1,"line6"
[6] => \Text 37,1,"line7"
[7] => \Text 43,1,"line8"
[8] => \Text 49,1,"line9"
) [1] => Array (
[0] => \Text 1,1,"line10"
[1] => \Text 7,1,"line11"
[2] => \Text 13,1,"line12"
) )
最后,当我将它输出到文件时,我将拥有:
(我不知道如何输出array_chunk,我也需要帮助来做到这一点。)
\Text 1,1,"line1"
\Text 7,1,"line2"
\Text 13,1,"line3"
\Text 19,1,"line4"
\Text 25,1,"line5"
\Text 31,1,"line6"
\Text 37,1,"line7"
\Text 43,1,"line8"
\Text 49,1,"line9"
\Text 1,1,"line10"
\Text 7,1,"line11"
\Text 13,1,"line12"
注意数组中的元素个数可以大也可以小,这只是一个例子。
请注意 还具有相同键的数组(例如:第 1 行和第 10 行)将在末尾和开始处具有相同的额外文本。
我觉得这道题挺难的,希望有人能帮帮我。我已经在一周前尝试解决它,但我仍然做不到。
最佳答案
我希望这会有所帮助,但是这个问题需要考虑很多:
您可以在使用 array_chunk 制作的多维数组上执行 foreach 循环,并添加您想要添加的文本,如下所示:
$chunkedarray = array_chunk($txtcontent, 9, false);
foreach($chunkedarray as $key => $array){
foreach($array as $k => $v){
$chunkedarray[$key][$k] = '\text '.($k*6+1).',1,'.$v;
}
}
然后您可以使用我在 this stackoverflow question 上从@alienwebguy 找到的函数来展平多维数组。 :
function array_flatten($array) {
if (!is_array($array)) {
return FALSE;
}
$result = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
$result = array_merge($result, array_flatten($value));
}
else {
$result[$key] = $value;
}
}
return $result;
}
$flattenedarray = array_flatten($chunkedarray);
然后你可以用另一个for循环输出展平的多维数组:
foreach($flattenedarray as $v){
echo $v.'<br>';
}
查看 IDEone.com 上的示例代码:http://ideone.com/vzPJOB
关于php - array_chunk 根据键值添加文本并输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095899/
我有一个多维数组,我现在确定如何在我的数组键请求中使用数组 block ,同时将信息保留到新数组中。我想每 2 个数组拆分数组。我尝试在循环中使用 array_chunk 但没有成功。 这是我的数组。
我需要将一个数组拆分成几个 block ,每个 block 具有相同数量的元素(甚至在不同的 block 中重复)并在输出中保持平衡 因此,例如,从这样的数组开始: $input = array(1,
我是 php 的新手,需要一些帮助。 我有一个 html 表单,当用户可以提交文本时。此文本由 php 处理,如果一行超过 20 个字符,则会发生换行。之后,所有文本都被“分解”了,我得到了一个数组。
本文实例讲述了php array_chunk()函数用法与注意事项。分享给大家供大家参考,具体如下: 定义和用法 array_chunk() 函数把数组分割为新的数组块。 其中每个数组的单元数
我在制作序列时遇到一些问题。基本上我需要将一个序列切成数组序列。 Seq.windowed 几乎可以做到这一点,但我不想要重复的元素。 我可以通过首先将所有内容读入数组来获得我想要的内容,但我宁愿使用
这个问题在这里已经有了答案: How to Flatten a Multidimensional Array? (30 个答案) 关闭 2 年前。 array_chunk使用 block 大小将数组
我有一个对象数组,每个对象都有一个唯一的随机 ID。 111 => object(stdClass)[452] public 'Description' => string 'De
这个问题在这里已经有了答案: Split an Array into N Arrays - PHP (11 个答案) Split array into a specific number of ch
我有一个表单,用户可以点击一个按钮来添加他需要的参与者。对于每个参与者,我有 4 个字段。当我单击按钮添加参与者时,这些字段会自动添加脚本。这些字段被创建为 [data] 所以我在我的 php 文件中
我正在使用 Laravel 5 开发一个本地项目。我正在尝试获取可能(或成为)大量数据。我正在这样做 $tickets = Ticket::getResolvedTicketsBetween(
Laravel 初学者,使用 array_chunk 将记录导入数据库,当记录成功导入到数据库中时出现问题,它不会在路径中重定向,而且如果我回显消息,那么它会打印 5 次,我猜有 3000 条记录和
我有一个基本数组,我在其中使用 array_chunk 将其分成 3 个元素。 $array = array( 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h' )
我的PHP代码是: $splitArray = array_chunk($theArray,ceil(count($theArray) / 2),true); 最佳答案 php 的 array_chu
无法使用搜索选项找到答案,所以就在这里。 我有一个页面,其中包含我们客人的个人资料照片。使用 array_chunk 我将它们一次保留在 1 行上: foreach (array_chunk($smo
我是 php 的新手,我一整天都在努力让它工作。我有一个多数组,想以特定格式和组来回显每个数组。所以我浏览了 stackoverflow 并找到了这个帮助:
我有一个 ajax 帖子,它从 Controller 获取数据,我想做的是为 array_chunk 的每个元素创建一个 div,并将每个单独 block 的所有 div 附加到一个 div 中(请参
如何使用 Angular 2 实现以下目标? 我想在 foreach 期间显示数据,每行两列。我希望我的结果如下所示: VALUE1VALUE2 VALUE3VALUE4 VALUE5VALUE6
我是一名优秀的程序员,十分优秀!