Php 正在插入双值
Php 正在插入双值,php,arrays,foreach,Php,Arrays,Foreach,$categoriesforeach循环之前的结果- string(1) "1"string(1) "1"string(1) "2"string(1) "2" array(2){[0]=>string(1)“1”[1]=>string(1)“2”} $categoriesforeach循环中的结果- string(1) "1"string(1) "1"string(1) "2"string(1) "2" $sortOrderforeach循环前的结果- string(1) "1"string
$categories
foreach循环之前的结果-
string(1) "1"string(1) "1"string(1) "2"string(1) "2"
array(2){[0]=>string(1)“1”[1]=>string(1)“2”}
$categories
foreach循环中的结果-
string(1) "1"string(1) "1"string(1) "2"string(1) "2"
$sortOrder
foreach循环前的结果-
string(1) "1"string(1) "1"string(1) "2"string(1) "2"
array(4){[0]=>string(2)“20”[1]=>string(2)“13”[2]=>string(0)”“[3]=>string(0)”}
$sortOrder
foreach循环中的结果-
string(2) "20"string(2) "13"string(0) ""string(0) ""string(2) "20"string(2) "13"string(0) ""string(0) ""
为什么我在foreach中获得一次双重值
foreach($categories as $cat)
{
foreach($sortOrder as $sort)
{
if(strlen($sort)>0)
{
//$this->Ps_products_model->brand_by_category_insert($brand_name,$brand_id,$cat,$sort,$state);
}
}
}
$this->load->view('admin/ajax/test', $data);
预期输出:
Cat: 1, Sort: 20
Cat: 2, Sort: 13
如果我对您想要实现的目标有点困惑,请原谅,但是当我运行以下程序(基于您的代码)时: 那么你对结果的期望是什么呢?你能提供一些样品吗 编辑: 在这种情况下,您需要的是for循环:
Cat: 1, Sort: 20
Cat: 2, Sort: 13
(以防万一Crackertastic没有回来。)我假设你的意思是$categories的第一个元素与$sortOrder的第一个元素匹配,依此类推?那么我想你想要的是:
for($i=0;$i
但如果$categories的条目数大于$sortOrder,则会出现问题。也许你正在别处处理这个问题 你能提供你想要的结果的输出吗?@cracketastic我基本上想要的是第一个数组和“单数”结果,而不是“双精度”值你的代码应该做什么?外部foreach运行两次,因为$categories中有两个条目。所以整个$sortOrder foreach运行了两次。所以,如果你要打印var_dump($sort)或类似的东西(不知道),你会得到两次所有的东西。我肯定我不明白这个问题。@matt我正试图让它插入带有一组数据的$categories和$sortOrder,而不是double-up。我怎样才能让它插入一次呢?谢谢Matt,这会消除对foreach的需要吗?它不应该有更多的条目,因为每个$catYes只有一个$sort输入框,只需使用for循环即可。谢谢Matt希望我能接受你们两个-让我困惑了一段时间你接受了CracketAstic,因为他的最初答案确实解决了这个问题。:-)
Cat: 1, Sort: 20
Cat: 2, Sort: 13
for ($i = 0; $i < count($categories); $i++) {
$cat = $categories[$i];
$sort = $sortOrder[$i];
print("Cat: $cat, Sort: $sort \n");
}