Hướng dẫn how to know last index in foreach php? - Làm thế nào để biết chỉ số cuối cùng trong foreach php?

Nếu bạn cần làm một cái gì đó cho mọi yếu tố ngoại trừ phần đầu tiên hoặc phần cuối cùng và chỉ khi có nhiều hơn một phần tử trong mảng, tôi thích giải pháp sau.

Tôi biết có nhiều giải pháp ở trên và đã đăng hàng tháng/một năm trước của tôi, nhưng đây là điều tôi cảm thấy khá thanh lịch theo cách riêng của nó. Kiểm tra mỗi vòng lặp cũng là một kiểm tra boolean trái ngược với kiểm tra số "I = [Count-1]", có thể cho phép ít chi phí hơn.

Cấu trúc của vòng lặp có thể cảm thấy khó xử, nhưng bạn có thể so sánh nó với thứ tự của THEAD [bắt đầu], tfoot [kết thúc], tbody [hiện tại] trong các thẻ bảng HTML.

$first = true;
foreach[$array as $key => $value] {
    if [$first] {
        $first = false;
        // Do what you want to do before the first element
        echo "List of key, value pairs:\n";
    } else {
        // Do what you want to do at the end of every element
        // except the last, assuming the list has more than one element
        echo "\n";
    }
    // Do what you want to do for the current element
    echo $key . ' => ' . $value;
}

Chẳng hạn, trong các thuật ngữ phát triển web, nếu bạn muốn thêm một đáy biên vào mọi yếu tố ngoại trừ phần cuối cùng trong danh sách không có thứ tự [UL], thì thay vào đó bạn có thể thêm một đường viền cho mọi yếu tố ngoại trừ phần đầu tiên [CSS: CSS: Chân đầu tiên, được hỗ trợ bởi IE7+ và Firefox/WebKit hỗ trợ logic này, trong khi: con cái cuối cùng không được IE7 hỗ trợ].border-bottom to every element except the last in an unordered list [ul], then you can instead add a border-top to every element except the first [the CSS :first-child, supported by IE7+ and Firefox/Webkit supports this logic, whereas :last-child is not supported by IE7].

Bạn có thể cảm thấy thoải mái khi sử dụng lại biến $ đầu tiên cho mỗi vòng lặp lồng nhau và mọi thứ sẽ hoạt động tốt vì mỗi vòng lặp đều tạo ra $ First False trong quá trình lặp đầu tiên của lần lặp đầu tiên [vì vậy Breaks/Exception sẽ không gây ra vấn đề] .

$first = true;
foreach[$array as $key => $subArray] {
    if [$first] {
        $string = "List of key => value array pairs:\n";
        $first = false;
    } else {
        echo "\n";
    }

    $string .= $key . '=>[';
    $first = true;
    foreach[$subArray as $key => $value] {
        if [$first] {
            $first = false;
        } else {
            $string .= ', ';
        }
        $string .= $key . '=>' . $value;
    }
    $string .= ']';
}
echo $string;

Ví dụ đầu ra:

List of key => value array pairs:
key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
key3=>[v3_key1=>v3_val1]

$first = true;
foreach[$array as $key => $subArray] {
    if [$first] {
        $string = "List of key => value array pairs:\n";
        $first = false;
    } else {
        echo "\n";
    }

    $string .= $key . '=>[';
    $first = true;
    foreach[$subArray as $key => $value] {
        if [$first] {
            $first = false;
        } else {
            $string .= ', ';
        }
        $string .= $key . '=>' . $value;
    }
    $string .= ']';
}
echo $string;
23
$first = true;
foreach[$array as $key => $subArray] {
    if [$first] {
        $string = "List of key => value array pairs:\n";
        $first = false;
    } else {
        echo "\n";
    }

    $string .= $key . '=>[';
    $first = true;
    foreach[$subArray as $key => $value] {
        if [$first] {
            $first = false;
        } else {
            $string .= ', ';
        }
        $string .= $key . '=>' . $value;
    }
    $string .= ']';
}
echo $string;
24$myarray
List of key => value array pairs:
key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
key3=>[v3_key1=>v3_val1]
8

$first = true;
foreach[$array as $key => $subArray] {
    if [$first] {
        $string = "List of key => value array pairs:\n";
        $first = false;
    } else {
        echo "\n";
    }

    $string .= $key . '=>[';
    $first = true;
    foreach[$subArray as $key => $value] {
        if [$first] {
            $first = false;
        } else {
            $string .= ', ';
        }
        $string .= $key . '=>' . $value;
    }
    $string .= ']';
}
echo $string;
9
List of key => value array pairs:
key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
key3=>[v3_key1=>v3_val1]
0
$first = true;
foreach[$array as $key => $subArray] {
    if [$first] {
        $string = "List of key => value array pairs:\n";
        $first = false;
    } else {
        echo "\n";
    }

    $string .= $key . '=>[';
    $first = true;
    foreach[$subArray as $key => $value] {
        if [$first] {
            $first = false;
        } else {
            $string .= ', ';
        }
        $string .= $key . '=>' . $value;
    }
    $string .= ']';
}
echo $string;
4
$first = true;
foreach[$array as $key => $subArray] {
    if [$first] {
        $string = "List of key => value array pairs:\n";
        $first = false;
    } else {
        echo "\n";
    }

    $string .= $key . '=>[';
    $first = true;
    foreach[$subArray as $key => $value] {
        if [$first] {
            $first = false;
        } else {
            $string .= ', ';
        }
        $string .= $key . '=>' . $value;
    }
    $string .= ']';
}
echo $string;
7
1: First iteration 
6: :ast iteration
0
$first = true;
foreach[$array as $key => $subArray] {
    if [$first] {
        $string = "List of key => value array pairs:\n";
        $first = false;
    } else {
        echo "\n";
    }

    $string .= $key . '=>[';
    $first = true;
    foreach[$subArray as $key => $value] {
        if [$first] {
            $first = false;
        } else {
            $string .= ', ';
        }
        $string .= $key . '=>' . $value;
    }
    $string .= ']';
}
echo $string;
23
$first = true;
foreach[$array as $key => $subArray] {
    if [$first] {
        $string = "List of key => value array pairs:\n";
        $first = false;
    } else {
        echo "\n";
    }

    $string .= $key . '=>[';
    $first = true;
    foreach[$subArray as $key => $value] {
        if [$first] {
            $first = false;
        } else {
            $string .= ', ';
        }
        $string .= $key . '=>' . $value;
    }
    $string .= ']';
}
echo $string;
8

List of key => value array pairs:
key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
key3=>[v3_key1=>v3_val1]
4
List of key => value array pairs:
key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
key3=>[v3_key1=>v3_val1]
5
$first = true;
foreach[$array as $key => $subArray] {
    if [$first] {
        $string = "List of key => value array pairs:\n";
        $first = false;
    } else {
        echo "\n";
    }

    $string .= $key . '=>[';
    $first = true;
    foreach[$subArray as $key => $value] {
        if [$first] {
            $first = false;
        } else {
            $string .= ', ';
        }
        $string .= $key . '=>' . $value;
    }
    $string .= ']';
}
echo $string;
4
1: First iteration 
6: Last iteration
2
List of key => value array pairs:
key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
key3=>[v3_key1=>v3_val1]
8

  • $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    9
    List of key => value array pairs:
    key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
    key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
    key3=>[v3_key1=>v3_val1]
    
    0
    $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    54__ = 1
  • Làm thế nào để tôi có được yếu tố cuối cùng trong foreach?
  • $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    23
    $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    24$myarray
    List of key => value array pairs:
    key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
    key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
    key3=>[v3_key1=>v3_val1]
    
    8

    $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    9
    List of key => value array pairs:
    key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
    key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
    key3=>[v3_key1=>v3_val1]
    
    0
    $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    4
    $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    7
    1: First iteration 
    6: :ast iteration
    0
    $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    23
    $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    8

    List of key => value array pairs:
    key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
    key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
    key3=>[v3_key1=>v3_val1]
    
    4
    List of key => value array pairs:
    key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
    key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
    key3=>[v3_key1=>v3_val1]
    
    5
    $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    4
    1: First iteration 
    6: Last iteration
    2
    List of key => value array pairs:
    key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
    key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
    key3=>[v3_key1=>v3_val1]
    
    8

    $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    9
    List of key => value array pairs:
    key1=>[v1_key1=>v1_val1, v1_key2=>v1_val2]
    key2=>[v2_key1=>v2_val1, v2_key2=>v2_val2, v2_key3=>v2_val3]
    key3=>[v3_key1=>v3_val1]
    
    0
    $first = true;
    foreach[$array as $key => $subArray] {
        if [$first] {
            $string = "List of key => value array pairs:\n";
            $first = false;
        } else {
            echo "\n";
        }
    
        $string .= $key . '=>[';
        $first = true;
        foreach[$subArray as $key => $value] {
            if [$first] {
                $first = false;
            } else {
                $string .= ', ';
            }
            $string .= $key . '=>' . $value;
        }
        $string .= ']';
    }
    echo $string;
    
    54__ = 1
    Method 1: It is the naive method inside foreach loop to find iteration. Use a counter variable and check when the counter value is zero then it is the first iteration and when the counter value is length-1 then it is the last iteration.
    Example: 
     

    PHP

    Bài Viết Liên Quan

    Chủ Đề