我有一个数组
// Store all fetched rows in a variable
$results = $stmt->fetchAll();
// Iterate through all your results
foreach($results as $row) {
echo '<a href="http://'.$_SERVER['HTTP_HOST'].'/anbu/home.php?topic='.$row['topic_name'].'" class="list-group-item list-group-item-action justify-content-between"></a>';
}
// Re-access the first row
$firstRow = $results[0];
print_r($firstRow);
当我使用切片时
print_r($myarray);
Array ( [0] => text one ) Array ( [0] => text two ) Array ( [0] => text three ) ...
我得到一个空数组,怎样才能将这个数组切成两半?
由于
答案 0 :(得分:1)
你实际上有一个包含数组的数组,这可能是导致问题的原因。虽然我没有看到你如何得到你发布的结果......实际上你可能实际上是将slice函数应用于输出数组的每个元素。那么你肯定会为每次迭代得到一个空数组。正如所料,因为您迭代的每个元素只包含一个元素。因此,从位置1切片将导致每次都有一个空数组......
使用普通数组考虑这个简单的例子:
<?php
$input = ["one", "two", "three", "four", "five", "six"];
$output = array_slice($input, 1, 2);
print_r($output);
输出结果为:
Array
(
[0] => two
[1] => three
)
因此,php的array_slice()
功能正常运作......
与您在帖子中建议的数组数组相同:
<?php
$input = [["one"], ["two"], ["three"], ["four"], ["five"], ["six"]];
$output = array_slice($input, 1, 2);
print_r($output);
正如预期的那样输出:
Array
(
[0] => Array
(
[0] => two
)
[1] => Array
(
[0] => three
)
)
另外考虑下面的第二条评论,你在单个字符串中有一些单词(强大是你所描述的)我自己得到了一个有意义的结果:
<?php
$input = explode(' ', "one two three four five six");
$output = array_slice($input, 1, 2);
print_r($output);
正如预期的那样,输出是:
Array
(
[0] => two
[1] => three
)