【发布时间】:2014-12-04 21:31:01
【问题描述】:
我有一个看起来像这样的数组,它是由以下生成的:
$file = fopen($savedSource,"r");
while(! feof($file)) {
$data = (fgetcsv($file));
}
Array
(
[0] => First Name
[1] => Last Name
[2] => Title
[3] => Company / Account
[4] => Email
[5] => Lead ID
[6] => Profile Image
Zelayas
[7] => Zelayas
[8] =>
[9] => Kramer
[10] => zel@somewhere.com
[11] => 123456
[12] => https://media.com/0f48c22.jpg
Kanngiesser
[13] => Kanngiesser
[14] =>
[15] => Johnson
[16] => kanngie@somewhere.com
[17] => 7891234
[18] => https://media.com/135f3b7.jpg
我希望能够将这些 URL 存储到一个简单的(无嵌套)数组中,以便结果变为:
Array
(
[0] => https://media.com/0f48c22.jpg
[1] => https://media.com/135f3b7.jpg
=== 编辑 === 从选定的答案来看,我已经能够实现我所追求的基本目标了。
$new_array = array();
foreach($data as $a){
if(substr( $a, 0, 4 ) === "http"){
array_push($new_array, $a);
}
}
结果,$new_array 现在给了我
Array
(
[0] => https://media.com/0f48c22.jpg
Kanngiesser
[1] => https://media.com/135f3b7.jpg
Mostovoy
因此,脚本似乎将当前行的最后一个字段和下一行的第一个字段视为一个字段。
【问题讨论】:
-
我的懒惰方式:循环并检查值是否以“http”开头
-
$urls = preg_grep('/^http/', $array); -
不确定这个问题的标题是否准确。 “Every nth”暗示了“每 6 个”之类的意思,但是您的示例听起来像是您想要具有特定值的元素。你能澄清一下吗?
-
@mopo922 正确。 OP 的问题建议第 6 项和第 24 项也应包含 URL。这可以通过除以余数(%)然后
-
如果你真的在 url 之后最好检查一下,以防有一天输入发生变化
标签: php arrays csv foreach while-loop