Я определяю переменную вычитания следующим образом:
$query = "SELECT * FROM around WHERE `long` != '' ORDER BY id DESC";
$result = mysql_query( $query );
$select_maxlong = mysql_query("SELECT long FROM around WHERE
`id`='$max_id'");
$row3 = mysql_fetch_row($select_maxlong);
$max_long = $row3[0];
Затем мне нужно вычесть $ max_long из значения массива ниже:
while ( $row = mysql_fetch_assoc( $result ) ) {
echo $row['long'];}
Я пытался:
foreach($row as $row) {
$car = $max_long;
echo "u";
echo $car - $row['long'] ; }
Но вывод не правильный.
Если в массиве 10 чисел, $ row [‘long’], я хочу вычесть из каждого из них $ max_long и вывести результат.
Этот код должен работать на вас
$select_maxlong = mysql_query("SELECT long FROM around WHERE `id`='$max_id'");
$row3 = mysql_fetch_row($select_maxlong);
$max_long = $row3[0];
$myarray=array();
while ( $row = mysql_fetch_assoc( $result ) ) {
$myarray[]=$row['long'];
}
function showvalue($element, $key) {
echo $max_long-$element;
}
array_walk($myarray,'showvalue');
Но, таким образом, вы вычитаете элемент из $ max_long, а не иначе, как вы сказали (это то, что ваш код, похоже, пытается). Если вы хотите вычесть $ max_long из каждого элемента массива и вывести результат, просто инвертируйте порядок переменных в строке эха. Надеюсь это поможет.
Других решений пока нет …