I need a simpler way like 1 - 100 instead of adding any number and number (1,2,3....)
$all_urls = array(1,2,3,4..,100);
foreach ($all_urls as $url){
$xml = simplexml_load_file("http://localhost/$url");
}
You can use range():
Create an array containing a range of elements
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
echo $number;
}
$all_urls = range(1,100);
Related
I've been looking high and low for this, but I can't seem to find the best way to do this?
I want to basically run through a simple range of numbers 1-20, and every time there is a "3" listed, like 3 or 13, replace that with a value like "thisisa3value"
I'm just a little stumped on the best way that can be done?
This is the code I have so far but it doesn't seem to be working, as it basically prints this out on each number. I want it to basically just ONLY do that for ones that have a 3 associated with it. Can someone please take a look and let me know what I'm doing wrong?
<?php
foreach (range(1, 20) as $number ) {
echo $number;
echo ' ';
if ( in_array(3, range(1,20)) ) {
echo ' thisisa3value ';
}
}
?>
To reiterate, I just want it to basically print out like this:
1, 2, this is a 3 value, 4, 5, 6, 7, 8, 9, 10, 11, 12, this is a 3 value, 14, 15, 16, 17, 18, 29, 20.
Any help would be greatly appreciated. Thanks!
This Code may help you
foreach (range(1, 20) as $number ) {
echo $number;
echo '<br>';
if (strstr($number, '3')) {
echo ' thisisa3value <br>';
}
}
Based on your example, any appearance of a 3 is valid, such as 13.
$text = join(', ', range(1, 20));
echo preg_replace('/(\d*3\d*)/', 'this is a 3 value', $text);
Produces:
1, 2, this is a 3 value, 4, 5, 6, 7, 8, 9, 10, 11, 12, this is a 3 value, 14, 15, 16, 17, 18, 19, 20
Using loop to find the digit in that particular number
foreach (range(1, 20) as $number ) {
if( isDigitPresent($number, 3)){
echo 'thisisa3value ,';
}
else{
echo $number . ' ,' ;
}
}
function isDigitPresent( $number , $digit ){
$found = false;
while( $number > 0 ){
if( ($number % 10) == $digit ){
$found = true;
break;
}
$number = $number/10;
}
return $found ? $found : false;
}
First of all, thanks for looking at my question.
I only want to add up the positive numbers in the $numbers using a if,else statement.
$numbers = array (1, 8, 12, 7, 14, -13, 8, 1, -1, 14, 7);
$total = 0;
if ($numbers < 0 {
$numbers = 0;
}
elseif (now i want only the positive numbers to add up in the $total.)
I'm an first years student and I am trying to understand the logic.
I'm not gonna give the direct answer, but the way here is you need a simple loop, can be for or a foreach loop, so every iteration you just need to check whether the current number in the loop is grater than zero.
Example:
$numbers = array (1, 8, 12, 7, 14, -13, 8, 1, -1, 14, 7);
$total = 0;
foreach($numbers as $number) { // each loop, this `$number` will hold each number inside that array
if($number > 0) { // if its greater than zero, then make the arithmetic here inside the if block
// add them up here
// $total
} else {
// so if the number is less than zero, it will go to this block
}
}
Or as michael said in the comments, a function also can be used in this purpose:
$numbers = array (1, 8, 12, 7, 14, -13, 8, 1, -1, 14, 7);
$total = array_sum(array_filter($numbers, function ($num){
return $num > 0;
}));
echo $total;
$numbers = array (1, 8, 12, 7, 14, -13, 8, 1, -1, 14, 7);
$total = 0;
foreach($numbers as $number)
{
if($number > 0)
$total += $number;
}
this loops through all elements of the array(foreach = for each number in the array) and checks if the element is bigger than 0, if it is, add it to the $total
I have the following randomly generated string:
$text = 's$bp4q1hsq3#g88nsjm5hr#i9#3078e2m';
What I need is to take all integers from it and classify them as either prime or composite numbers and estimate their sum. All numbers should be assumed that are one digit so this shortens the values to only four per each group:
$primes = array(2, 3, 5, 7);
$composites = array(4, 6, 8, 9);
This means: Primes: 5, 3, 3, 2 = 13 and Composites: 4, 8, 8, 9, 8 = 37 as duplicate numbers also count.
I have tried grabbing the numbers like so:
$asArray = str_split($text);
foreach ($asArray as $element) {
if (is_int($element)) {
echo $element;
}
}
But it seems to end up in a blank page. So my question is how can I find out the numbers in a string and then classify them as either prime or composite?
Here you have the sum of the primes and composites:
$text = 's$bp4q1hsq3#g88nsjm5hr#i9#3078e2m';
$primes = array(2, 3, 5, 7);
$sum_primes = $sum_composites = 0;
preg_match_all("/\d/", $text, $matches);
foreach($matches[0] as $number)
{
if (in_array($number, $primes))
$sum_primes += $number;
else
$sum_composites += $number;
}
echo "Sum of primes: ".$sum_primes."\n";
echo "Sum of composites: ".$sum_composites."\n";
It would print,
Sum of primes: 20
Sum of composites: 38
Problem:
I have a field in my MySQL table with the following value:
9, 10, 11, 12, 13, 14, 15, 16, 26, 27, 28, 29, 30, 31, 32
I use PHP to put the value of this field in the variable: $row['Exclude'];
The problem is that I am using a function called rand_except() that looks as following:
function rand_except($min, $max, $except)
{
//first sort array values
sort($except, SORT_NUMERIC);
//calculate average gap between except-values
$except_count = count($except);
$avg_gap = ($max - $min + 1 - $except_count) / ($except_count + 1);
if ($avg_gap <= 0)
return false;
//now add min and max to $except, so all gaps between $except-values can be calculated
array_unshift($except, $min - 1);
array_push($except, $max + 1);
$except_count += 2;
//iterate through all values of except. If gap between 2 values is higher than average gap,
// create random in this gap
for ($i = 1; $i < $except_count; $i++)
if ($except[$i] - $except[$i - 1] - 1 >= $avg_gap)
return mt_rand($except[$i - 1] + 1, $except[$i] - 1);
return false;
}
In order for this to work it needs to be like this:
$exclude = array(9, 10, 11, 12, 13, 14, 15, 16, 26, 27, 28, 29, 30, 31, 32);
$_SESSION['experimentversion'] = rand_except(1, 32, $exclude);
Question:
How can I take the database field $row['Exclude'] and transform it into an array so it will work with the function?
Simple. Use Explode function.
$s = "1,2,3,4";
$y = explode(",", $s);
print_r($y)
There is a explode method in php you can use this method
$string = '1,2,3,4,5';
$array = explode(",",$string);
print_r($array);
it will create an array.
$exclude = explode(', ', $row['Exclude']);
$str = '1,2,3,4,5';
$arr = explode(",",$str);
print_r($arr);
This should do the trick:
$exclude = explode(", ", $row['Exclude']);
use explode function.. for more info of Explode Visi this link
$row = "retrive your value from db";
$data = explode(", ",$row);
print_r($data); //here you will get array of your db field
I want generate a range of numbers orderly. I mean opposite of rand function in php. I test with range but it generate only array of numbers
For example
min 1 and max 3
rand(1,3);// 2,1,3
but i want 1,2,3
Any in built in functions in php like rand for getting this features without using any loops?
Use range() to generate numbers
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
echo $number;
}
You can achieve this using for loop
for ($i = 1; $i <= 3; $i++) {
echo $i;
}
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
echo $number;
}
If you are using php then take a look at range function
If I understand your slightly missleading question.. this might do it:
$string = implode(', ', range(1,3));
echo $string;
And not a loop in sight :)
Or as a one liner:
echo implode(', ', range(1,3));